How to Style a Table with CSS

See CSS: Tips and Tricks for similar articles.
Looking to improve your CSS skills? Check out Webucator’s CSS classes.

Back before CSS, people used HTML tables to lay out web pages. The rule is the same now as it was then: tables should not be used to lay out pages. They should be used for tabular data, such as financial reports or a meeting agenda. To style tables with CSS, you should first be familiar with HTML table syntax.

The following is a list of the CSS you can use in tables, the tags you can use them with, and a brief description of each:

CSSTagsDescription
border-spacingtableSpecifies the space between adjacent borders and the content surrounding the table.
border-collapsetableTakes the values separate and collapse. Used to indicate whether adjacent borders should be merged (collapse) or not (separate).
paddingtableWhen applied to table cells (e.g., th and td), creates a buffer between their content and the cell borders.
bordertableAllows you to control the borders of each side of the table and each side of each cell independently using the border properties.
background-imagetable, th, tdSpecifies the background image.
background-colorallSpecifies the background color.
widthtable, th, tdSpecifies the width of the table, th, or td.
heighttable, tr, th, tdSpecifies the height of the table, th, or td.
text-aligntr, th, tdAligns the text.
vertical-aligntr, th, tdAligns vertically.

The following code shows this CSS in use:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<style type="text/css">
body {
	background-color: #f6f6ff;
	font-family: Calibri, Myriad;
}

#main {
	width: 780px;
	padding: 20px;
	margin: auto;
}

table.timecard {
	margin: auto;
	width: 600px;
	border-collapse: collapse;
	border: 1px solid #fff; /*for older IE*/
	border-style: hidden;
}

table.timecard caption {
	background-color: #f79646;
	color: #fff;
	font-size: x-large;
	font-weight: bold;
	letter-spacing: .3em;
}

table.timecard thead th {
	padding: 8px;
	background-color: #fde9d9;
	font-size: large;
}

table.timecard thead th#thDay {
	width: 40%;	
}

table.timecard thead th#thRegular, table.timecard thead th#thOvertime, table.timecard thead th#thTotal {
	width: 20%;
}

table.timecard th, table.timecard td {
	padding: 3px;
	border-width: 1px;
	border-style: solid;
	border-color: #f79646 #ccc;
}

table.timecard td {
	text-align: right;
}

table.timecard tbody th {
	text-align: left;
	font-weight: normal;
}

table.timecard tfoot {
	font-weight: bold;
	font-size: large;
	background-color: #687886;
	color: #fff;
}

table.timecard tr.even {
	background-color: #fde9d9;
}
</style>
<title>Employee Timecard</title>
</head>

<body>
<div id="main">
<table class="timecard">
	<caption>Employee Timecard</caption>
	<thead>
		<tr>
			<th id="thDay">Day</th>
			<th id="thRegular">Regular</th>
			<th id="thOvertime">Overtime</th>
			<th id="thTotal">Total</th>
		</tr>
	</thead>
	<tbody>
		<tr class="odd">
			<th>Monday</th>
			<td>8</td>
			<td>0</td>
			<td>8</td>
		</tr>
		<tr class="even">
			<th>Tuesday</th>
			<td>8</td>
			<td>2.5</td>
			<td>10.5</td>
		</tr>
		<tr class="odd">
			<th>Wednesday</th>
			<td>8</td>
			<td>0</td>
			<td>8</td>
		</tr>
		<tr class="even">
			<th>Thursday</th>
			<td>8</td>
			<td>0</td>
			<td>8</td>
		</tr>
		<tr class="odd">
			<th>Friday</th>
			<td>8</td>
			<td>0</td>
			<td>8</td>
		</tr>
		<tr class="even">
			<th>Saturday</th>
			<td>0</td>
			<td>5</td>
			<td>5</td>
		</tr>
		<tr class="odd">
			<th>Sunday</th>
			<td>0</td>
			<td>1</td>
			<td>1</td>
		</tr>
	</tbody>
	<tfoot>
		<tr>
			<th>Total weekly hours:</th>
			<td>40</td>
			<td>8.5</td>
			<td>48.5</td>
		</tr>
	</tfoot>
</table>
</div>
</body>
</html>

This code renders the following:CSS table


Related Articles

  1. Learn the Very Basics of CSS in One Minute
  2. How to Create a CSS External Style Sheet
  3. How to Align Text with CSS
  4. How to Create a Horizontal Navigation Menu with CSS
  5. How to Create a Fixed-Width Layout with CSS
  6. How to Remove Spacing Between Table Borders with CSS
  7. How to Set a Background Image with CSS
  8. How to Set Text Spacing and Placement in CSS
  9. How to Style a Table with CSS (this article)
  10. How to Create Boxes with Rounded Corners in CSS
  11. How to Create a Vertical Navigation Menu with CSS
  12. How to Use the CSS Opacity Property
  13. How to Use Multiple Background Images with CSS
  14. Absolute Positioning with CSS
  15. How to Use the CSS Border Shorthand Property
  16. How to Create CSS Button Links
  17. How to Create a Fluid-Width Layout with CSS
  18. How to Set Text and Background Color with CSS
  19. How to Create a CSS Embedded Style Sheet
  20. How to Add Inline Styles to CSS
  21. How to Create a Border with CSS
  22. How to Use the CSS Padding Shorthand Property
  23. How to Create a Fly-Out Menu with CSS
  24. How to Use CSS Media Queries in Responsive Design
  25. How to Adjust Margins with CSS
  26. How to Use the CSS Background Shorthand Property
  27. How to Create a Form without Tables Using CSS
  28. How to Modify Fonts in CSS
  29. How to Create a Drop-Down Menu with CSS
  30. How to Apply Padding with CSS
  31. Fixed Positioning with CSS
  32. How to Use CSS Transitions
  33. How to Use the CSS list-style Shorthand Property
  34. How to Change Text Style in CSS
  35. How to Create CSS Sprites
  36. How to Use CSS with Different Media Types
  37. How to Import Style Sheets with @import in CSS
  38. How to Use the CSS White-Space Property
  39. How to Use the CSS Z-index Property
  40. How to Create Drop Shadows with the box-shadow Property in CSS3