<colgroup>

The HTML <colgroup> element defines a group of columns within a table.

Content categories None.
Permitted content If the span attribute is present: none, it is an empty element.
If the attribute is not present: zero or more <col> element
Tag omission The start tag may be omitted, if it has a <col> element as its first child and if it is not preceded by a <colgroup> whose end tag has been omitted.
The end tag may be omitted, if it is not followed by a space or a comment.
Permitted parents A <table> element. The <colgroup> must appear after any optional <caption> element but before any <thead>, <th>, <tbody>, <tfoot> and <tr> element.
Permitted ARIA roles None
DOM interface HTMLTableColElement

Attributes

This element's attributes include the global attributes.

span
This attribute contains a positive integer indicating the number of consecutive columns the <colgroup> element spans. If not present, its default value is 1.
Note: This attribute is applied on the attributes of the column group, it has no effect on the CSS styling rules associated with it or, even more, to the cells of the column's members of the group.
  • The span attribute is not permitted if there are one or more <col> elements within the <colgroup>.

Deprecated attributes

The following attributes are deprecated and should not be used. They are documented below for reference when updating existing code and for historical interest only.

align
This enumerated attribute specifies how horizontal alignment of each column cell content will be handled. Possible values are:
  • left, aligning the content to the left of the cell
  • center, centering the content in the cell
  • right, aligning the content to the right of the cell
  • justify, inserting spaces into the textual content so that the content is justified in the cell
  • char, aligning the textual content on a special character with a minimal offset, defined by the char and charoff attributes.

If this attribute is not set, the left value is assumed. The descendant <col> elements may override this value using their own align attribute.

Note: 
  • Do not try to set the text-align property on a selector giving a <colgroup> element. Because <td> elements are not descendant of the <colgroup> element, they won't inherit it.
  • If the table doesn't use a colspan attribute, use one td:nth-child(an+b) CSS selector per column, where a is the total number of the columns in the table and b is the ordinal position of this column in the table. Only after this selector the text-align property can be used.
  • If the table does use a colspan attribute, the effect can be achieved by combining adequate CSS attribute selectors like [colspan=n], though this is not trivial.
bgcolor

The background color of the table. It is a 6-digit hexadecimal RGB code, prefixed by a '#'. One of the predefined color kewords can also be used.

To achieve a similar effect, use the CSS background-color property.

char
This attribute specifies the alignment of the content in a column group to a character. Typical values for this include a period (.) when attempting to align numbers or monetary values. If align is not set to char, this attribute is ignored, though it will still be used as the default value for the align of the <col> which are members of this column group.
charoff
This attribute is used to indicate the number of characters to offset the column data from the alignment character specified by the char attribute.
valign
This attribute specifies the vertical alignment of the text within each cell of the column. Possible values for this attribute are:
  • baseline, which will put the text as close to the bottom of the cell as it is possible, but align it on the baseline of the characters instead of the bottom of them. If characters are all of the size, this has the same effect as bottom.
  • bottom, which will put the text as close to the bottom of the cell as it is possible;
  • middle, which will center the text in the cell;
  • and top, which will put the text as close to the top of the cell as it is possible.
Note:
  • Do not try to set the vertical-align property on a selector giving a <colgroup> element. Because <td> elements are not descendant of the <colgroup> element, they won't inherit it.
  • If the table doesn't use a colspan attribute, use the td:nth-child(an+b) CSS selector per column, where a is the total number of the columns in the table and b is the ordinal position of the column in the table. Only after this selector the vertical-align property can be used.
  • If the table does use a colspan attribute, the effect can be achieved by combining adequate CSS attribute selectors like [colspan=n], though this is not trivial.

Examples

Please see the <table> page for examples on <colgroup>.

Specifications

Specification Status Comment
HTML Living Standard
The definition of '<colgroup>' in that specification.
Living Standard
HTML5
The definition of '<colgroup>' in that specification.
Recommendation
HTML 4.01 Specification
The definition of '<colgroup>' in that specification.
Recommendation

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
colgroupChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
align
Deprecated
Chrome ? Edge Full support 12Firefox No support No
Notes
No support No
Notes
Notes See bug 915
IE Full support YesOpera ? Safari ? WebView Android ? Chrome Android ? Firefox Android No support No
Notes
No support No
Notes
Notes See bug 915
Opera Android ? Safari iOS ? Samsung Internet Android ?
bgcolor
Deprecated
Chrome ? Edge No support NoFirefox No support NoIE Full support YesOpera ? Safari ? WebView Android ? Chrome Android ? Firefox Android No support NoOpera Android ? Safari iOS ? Samsung Internet Android ?
char
Deprecated
Chrome ? Edge Full support 12Firefox No support No
Notes
No support No
Notes
Notes See bug 2212
IE Full support YesOpera ? Safari ? WebView Android ? Chrome Android ? Firefox Android No support No
Notes
No support No
Notes
Notes See bug 2212
Opera Android ? Safari iOS ? Samsung Internet Android ?
charoff
Deprecated
Chrome ? Edge Full support 12Firefox No support No
Notes
No support No
Notes
Notes See bug 2212
IE Full support YesOpera ? Safari ? WebView Android ? Chrome Android ? Firefox Android No support No
Notes
No support No
Notes
Notes See bug 2212
Opera Android ? Safari iOS ? Samsung Internet Android ?
spanChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
valign
Deprecated
Chrome ? Edge Full support 12Firefox No support No
Notes
No support No
Notes
Notes See bug 915
IE Full support YesOpera ? Safari ? WebView Android ? Chrome Android ? Firefox Android No support No
Notes
No support No
Notes
Notes See bug 915
Opera Android ? Safari iOS ? Samsung Internet Android ?
width
Deprecated
Chrome Full support 1Edge Full support 12Firefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.
See implementation notes.
See implementation notes.

See also

  • CSS properties and pseudo-classes that may be specially useful to style the <col> element:
    • the width property to control the width of the column;
    • the :nth-child pseudo-class to set the alignment on the cells of the column;
    • the text-align property to align all cells content on the same character, like '.'.