<colgroup>: The Table Column Group element
==========================================

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

Try it
------

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`.

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` 
Deprecated

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` 
Deprecated

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

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

`char` 
Deprecated

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` 
Deprecated

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` 
Deprecated

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>`.

Technical summary
-----------------

|  |  |
| --- | --- |
| Content categories | None. |
| Permitted content | 
 If the `span` attribute is
 present: none.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.
  |
| Implicit ARIA role | No corresponding role |
| Permitted ARIA roles | No `role` permitted |
| DOM interface | `HTMLTableColElement` |

Specifications
--------------

| Specification |
| --- |
| HTML Standard # the-colgroup-element |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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 '.'.