Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Resize tables in Confluence page to have same column widths?

Nick Schuette
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
June 4, 2018

I have a page on Confluence that has multiple tables with the same headings (information about various environments), and I'd like to resize the columns to all be the same width, but I see no easy way to do this. I'd rather not make them Fixed Width, as I don't want users to have to scroll horizontally to view the entire table. I just want the responsive design to scale up/down the entire table, and not individual column widths. Is this possible?

1 answer

1 vote
Davin Studer
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 4, 2018

I created a user macro a while ago that let's you set some parameters for tables. One of the params allows you to specify column with.

Macro Name:
advanced_tables

Macro Title:
Advanced Tables

Macro Body Processing:
Rendered

Template:

## Developed by: Davin Studer
## Date created: 04/30/2014

## @param ID:title=Table ID|type=string|required=false|desc=Provide a unique id (no spaces).
## @param AutoNumber:title=Autonumber Rows|type=boolean|desc=This will autonumber the rows in the table that are not heading rows.|default=false
## @param HeadingReset:title=Reset Count|type=boolean|desc=This will reset the count each time a heading row is encountered. (only applicable if Autonumber Rows is checked)|default=false
## @param Zebra:title=Zebra Table|type=boolean|desc=This will alternate the color of the table's rows.|default=false
## @param NoScroll:title=No Table Scroll|type=boolean|desc=This will turn off the scroll bat that is at the bottom of the table in favor of one always at the bottom of the page. This is useful for tables that are wider than the page.|default=false
## @param Width:title=Table Width|type=string|required=false|desc=This will set the width of the table. Acceptable values are in % or px or auto.
## @param Class:title=CSS Class|type=string|required=false|desc=This will assign a css class to the table.
## @param ColWidth:title=Column Widths|type=string|required=false|desc=Use a comma separated list of column widths for the table. Acceptable values are in % or px or auto.

###########################################################################
## These are used for getting around velocity issues when writing jQuery ##
###########################################################################
#set($d = '$')
#set($p = '#')
#set($lt = '<')
#set($gt = '>')

###########################################################################
## Use given ID if present otherwise generate one                        ##
###########################################################################
#if( $paramID && $paramID != "" )
    #set( $id = $paramID )
#else
    #set( $id = $action.dateFormatter.calendar.timeInMillis )
#end

<style type="text/css">
########################################################################################
## Below CDATA fixes issue with greather than and less than symbols being escaped out ##
########################################################################################
/*<![CDATA[*/
################
## Zebra tbl  ##
################
#if ( $paramZebra == true )
${p}table$id tr:nth-child(odd) {background-color: #E0F0FF;}
${p}table$id tr:nth-child(even) {background-color: #FFFFFF;}
#end

################
## No scroll  ##
################
#if ( $paramNoScroll == true )
${p}table$id .table-wrap {overflow-x: visible;}
#end

################
## Tbl width  ##
################
#if ( $paramWidth && $paramWidth != "" )
${p}table${id} table {width: $paramWidth;}
${p}table${id} table table {width: auto;}
#end

################
## Col Width  ##
################
#if ( $paramColWidth && $paramColWidth != "" )
    #set($cols = $paramColWidth.split(","))
    #set ($i = 1)
    #foreach($col in $cols)
        ${p}table$id table tbody:nth-of-type(1) tr:nth-of-type(1)>:nth-child(${i}){width: ${col};}
        ${p}table$id table table tbody:nth-of-type(1) tr:nth-of-type(1)>:nth-child(${i}){width: auto;}
        #set ($i = $i + 1)
    #end
#end
/*]]>*/
</style>
<script type="text/javascript">
//<![CDATA[
AJS.toInit(function(){
    ################
    ## Autonumber ##
    ################
    #if ( $paramAutoNumber == true )
    var number = true;
    #else
    var number = false;
    #end
    
    #if ( $paramHeadingReset == true )
    var reset = true;
    #else
    var reset = false;
    #end
    
    ################
    ## Class      ##
    ################
    #if ( $paramClass && $paramClass != "" )
    var cssClass = '$paramClass';
    #else
    var cssClass = '';
    #end

    if(number) {
        AJS.$('#table$id>div.table-wrap>div.table-wrap>table').each(function() {
            var count = 1;
            AJS.$(this).children('thead,tbody').children('tr').each(function(){
                if(AJS.$(this).children('th').length != 0) {
                    AJS.$(this).prepend('<th class="confluenceTh"> </th>');
                    if(reset) {
                        count = 1;
                    }
                } else {
                    AJS.$(this).prepend('<td class="confluenceTd">' + count + '</td>');
                    count++;
                }
            });
        });
    }

    if(cssClass != "") {
        AJS.$('#table$id>div.table-wrap>div.table-wrap>table').addClass(cssClass);
    }
});
//]]>
</script>

<div id="table$id">$body</div>
Nick Schuette
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
June 4, 2018

Hm, looks like I don't have access to create user macros. I'll have to talk to our admin about that. Thank you!

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events