How to set table column width, cell alignment and merge cells (requires some HTML coding ability).
Tables in the Single Digital Presence (SDP) content management system can be built using either the table option in the Basic text Body content component toolbar or the Data table component.
For accessibility reasons, you should always have table headings tagged correctly as a heading row and table caption if there is one (there usually should be).
...
Year
...
Total amount ($)
...
2019
...
23,100
...
2020
...
19,870
...
2021
...
21,100
Setting alignment
Mostly, Adjusting column width, cell alignment and merging cells requires some HTML coding ability. This functionality is currently under maintenance, sorry.
Before adding tables to your content, we recommend reading the Australian Government Style Manual’s guidance on tables.
Data table component
Read our guide on using the data table component.
Basic text component – table option
Read our guide on using the basic text component – table option.
Advanced settings
Alignment
Expand | ||
---|---|---|
Most tables should be left-aligned because we read left-to-right. However, tables |
...
with financial figures should have |
...
any columns with numerals set to right-aligned. To |
...
change the alignment, you need to go into the source code and edit the HTML. The code options you |
...
can use are:
Remember to always add a space between |
...
“th” or |
...
“td” and the alignment code snippet, so it looks like this: How to add the code |
...
In the component with your table, click the Source button. |
...
Look for code like this:
The heading cells are coded |
...
<th>. The rest of the cells are coded <td>. To set right-alignment for the second column (as displayed in the example), you need to add the code snippet into the <th> and all the corresponding <td> tags. Here's an example, using the code above with the alignment snipped added:
|
Here's how the table will display with right alignment set on the second column.
...
Year
...
Total amount ($)
...
2019
...
23,100
...
2020
...
19,870
...
2021
...
21,100
Setting column width
...
Column width
Expand | ||
---|---|---|
You can set a column width in just the heading row and that |
...
setting will |
...
then apply to the whole column. (This is different to alignment, which you have to set up in every cell.) |
...
One reason you might want to do this when you have a page with several similar tables and, due to varying lengths of content, they are displaying with varying column widths. In this case, setting the width of |
...
the |
...
columns should make the page content look better. How to manually set column widthWidth is controlled by our CSS (a style sheet that controls how the web pages look). In the CSS for vic.gov.au we have |
...
pre-set 12 fixed widths that correspond to percentages of the text area on screen (with different widths for different devices: desktop, tablet or mobile). |
If we use the table above as an example, you add the code as follows:
...
You want to add this code |
...
|
...
Here are the 12 snippets of code and |
...
the percentage they will apply |
...
Code snippet
...
Percentage of width
...
class="rpl-table--col-1"
...
8.33%
...
class="rpl-table--col-2"
...
16.67%
...
class="rpl-table--col-3"
...
25%
...
class="rpl-table--col-4"
...
33.32%
...
class="rpl-table--col-5"
...
41.65%
...
class="rpl-table--col-6"
...
50%
...
class="rpl-table--col-7"
...
58.3%
...
class="rpl-table--col-8"
...
66.65%
...
class="rpl-table--col-9"
...
75%
...
class="rpl-table--col-10"
...
83.3%
...
class="rpl-table--col-11"
...
91.63%
...
class="rpl-table--col-12"
...
100%
...
thin
...
text
...
text
...
text
...
: Examples of how the different column widths displayOften you just want to set the first column and let the width of the other columns automatically display according to the contents. This table has the first column set to display at 17% of the table's width. |
...
W2
...
Col 2
...
Col 3
...
Col 4
...
Col 5
...
17%
...
text
...
text
...
text
...
text
This table has the first column set to display at 33% of the table's width. |
...
Width 4
...
Col 2
...
Col 3
...
Col 4
...
Col 5
...
33%
...
text
...
text
...
text
...
text
...
text
...
text
...
text
...
text
...
text
...
This table has the first column set to display at 50% of the table's width. The fifth column has some longer text and this is affecting how columns 2, 3, 4 and 5 display in relation to each other. |
...
Column width 6 = 50%
...
Col 2
...
Col 3
...
Col 4
...
Col 5
...
text
...
text
...
text
...
text
...
In the 2 tables above, all the cells have equal sized text, so the columns are displaying as equal widths.
...
text
...
text
...
text
...
text
...
This table has the first column set to display at 75% of the table's width. That doesn't leave much space to display the content in the other columns. |
...
Column width 9 = 75%
...
Col 2
...
Col 3
...
Col 4
...
Col 5
...
text
...
text
...
text
...
text
...
text text text text text text text
...
text
...
text
...
text
...
text
...
text
Merging cells
Expand |
---|
Occasionally you may want to merge some cells in a table heading row |
...
This is not ideal for accessibility - make sure you read the note below.
...
, which you can do via the source code.
Use the colspan codeIf you're merging cells in a column (such as a heading), you insert the code and remove extra cells that relate to the spanning. |
...
For example: picture a table that has |
...
5 columns, and its first row is set up as the |
...
headings. We |
...
want merge the heading cells in columns 1, 2 and 3 |
...
, so we’ll delete the heading code snippet for columns 2 and 3. The rest of the table has 5 cells per row.
Here's what the above code looks like: |
...
Head 1,2,3
...
Head 4
...
Head 5
...
blah blah
...
blah blah
...
blah blah
...
blah blah
...
blah blah
...
blah blah
...
blah blah
...
blah blah
...
blah blah
...
blah blah
Use the rowspan codeIf you've set up a table and chosen the first column as the heading row, you'll notice the code looks different to |
...
the example above. There are no <thead> tags, and instead the first cell in each row has <th scope="row"> which indicates it's a heading. Here's an example:
This is what the above code looks like: |
...
Head 1
...
data
...
data
...
Head 2
...
data
...
data
...
Head 3
...
data
...
data
...
Head 4
...
data
...
data
...
To merge cells in rows, you insert the code and remove the extra cells that relate to the spanning. In this example, the table has 3 columns. We |
...
want to merge the heading cells in column 1, rows 1 and 2. The cell with <th> tags in the second row |
...
therefore needs to be deleted.
Here's |
...
Head 1 & 2
...
data
...
data
...
data
...
data
...
Head 3
...
data
...
data
Accessibility and merged table cells
Don't overuse merged cells in tables, they can be a tricky for screen readers, especially in complex data tables.
For example, one common, free screen reader app - NVDA - does not announce when a cell spans multiple rows or columns. (Source: accessibility-developer-guide.com).
...
what the above code looks like: |