Toggle navigation TUTORIAL HOME CSS Tables ❮ Previous Next ❯ The look of an HTML table can be greatly improved with CSS:
Company Contact Country Alfreds Futterkiste Maria Anders Germany Berglunds snabbköp Christina Berglund Sweden Centro comercial Moctezuma Francisco Chang Mexico Ernst Handel Roland Mendel Austria Island Trading Helen Bennett UK Königlich Essen Philip Cramer Germany Laughing Bacchus Winecellars Yoshi Tannamuri Canada Magazzini Alimentari Riuniti Giovanni Rovelli Italy Table Borders To specify table borders in CSS, use the border property.
The example below specifies a black border for
,
, and
elements:
Example table, th, td { border: 1px solid black; } » Notice that the table in the example above has double borders. This is because both the table and the
and
elements have separate borders.
Collapse Table Borders The border-collapse property sets whether the table borders should be collapsed into a single border:
Example table { border-collapse: collapse; }
table, th, td { border: 1px solid black; } » If you only want a border around the table, only specify the border property for
:
Example table { border: 1px solid black; } » Table Width and Height Width and height of a table are defined by the width and height properties.
The example below sets the width of the table to 100%, and the height of the
elements to 50px:
Example table { width: 100%; }
th { height: 50px; } » Horizontal Alignment The text-align property sets the horizontal alignment (like left, right, or center) of the content in
or
.
By default, the content of
elements are center-aligned and the content of
elements are left-aligned.
The following example left-aligns the text in
elements:
Example th { text-align: left; } » Vertical Alignment The vertical-align property sets the vertical alignment (like top, bottom, or middle) of the content in
or
.
By default, the vertical alignment of the content in a table is middle (for both
and
elements).
The following example sets the vertical text alignment to bottom for
elements:
Example td { height: 50px; vertical-align: bottom; } » Table Padding To control the space between the border and the content in a table, use the padding property on
and
elements:
Example th, td { padding: 15px; text-align: left; } » Horizontal Dividers First Name Last Name Savings Peter Griffin $100 Lois Griffin $150 Joe Swanson $300 Add the border-bottom property to
and
for horizontal dividers:
Example th, td { border-bottom: 1px solid #ddd; } » Hoverable Table Use the :hover selector on
to highlight table rows on mouse over:
First Name Last Name Savings Peter Griffin $100 Lois Griffin $150 Joe Swanson $300 Example tr:hover {background-color: #f5f5f5} » Striped Tables First Name Last Name Savings Peter Griffin $100 Lois Griffin $150 Joe Swanson $300 For zebra-striped tables, use the nth-child() selector and add a background-color to all even (or odd) table rows:
Example tr:nth-child(even) {background-color: #f2f2f2} » Table Color The example below specifies the background color and text color of
elements:
First Name Last Name Savings Peter Griffin $100 Lois Griffin $150 Joe Swanson $300 Example th { background-color: #4CAF50; color: white; } » Responsive Table A responsive table will display a horizontal scroll bar if the screen is too small to display the full content:
First Name Last Name Points Points Points Points Points Points Points Points Points Points Points Points Jill Smith 50 50 50 50 50 50 50 50 50 50 50 50 Eve Jackson 94 94 94 94 94 94 94 94 94 94 94 94 Adam Johnson 67 67 67 67 67 67 67 67 67 67 67 67 Add a container element (like
) with overflow-x:auto around the
element to make it responsive:
Example
… table content …
» More Examples Make a fancy table This example demonstrates how to create a fancy table.
Set the position of the table caption This example demonstrates how to position the table caption.
CSS Table Properties Property Description border Sets all the border properties in one declaration border-collapse Specifies whether or not table borders should be collapsed border-spacing Specifies the distance between the borders of adjacent cells caption-side Specifies the placement of a table caption empty-cells Specifies whether or not to display borders and background on empty cells in a table table-layout Sets the layout algorithm to be used for a table