CSS tables are used to style HTML tables, making them look neat and organized for clear data presentation.
- Add borders, spacing, and colors to enhance table design.
- Create responsive tables that adjust for all screen sizes.
HTML
<html>
<head>
<style>
table {
width: 50%;
border-collapse: collapse;
margin: 20px auto;
}
th, td {
border: 1px solid #000;
padding: 8px;
text-align: center;
}
th {
background-color: #f2f2f2;
}
</style>
</head>
<body>
<table>
<tr>
<th>Header 1</th>
<th>Header 2</th>
</tr>
<tr>
<td>Data 1</td>
<td>Data 2</td>
</tr>
<tr>
<td>Data 3</td>
<td>Data 4</td>
</tr>
</table>
</body>
</html>
- This code defines a table with two columns and three rows, including a header row.
- The CSS styles apply borders, padding, and background color to enhance the table’s appearance.
CSS Table Properties
1. Border
The border property defines the appearance of borders around table elements (e.g., table, tr, td, th). It specifies the border’s width, style, and color.
Syntax:
border: table_width table_color;
HTML
<html>
<head>
<style>
table,
th,
td {
border: 1.5px solid blue;
}
</style>
</head>
<body>
<table>
<tr>
<th>Roll No.</th>
<th>Name</th>
</tr>
<tr>
<td>1</td>
<td>A_B_C</td>
</tr>
<tr>
<td>2</td>
<td>X_Y_Z</td>
</tr>
</table>
</body>
</html>
- This HTML code creates a table with two columns: “Roll No.” and “Name,” and two rows of data.
- The CSS styles apply a 1.5px solid blue border to the table, table headers (<th>), and table data cells (<td>).
2. Border Collapse
The border-collapse property controls whether the borders of adjacent cells are merged into a single border or kept separate.
Syntax:
border-collapse: collapse/separate;
HTML
<html>
<head>
<style>
table.one {
border-collapse: collapse;
}
table.two {
border-collapse: separate;
}
table,
td,
th {
border: 1.5px solid blue;
}
</style>
</head>
<body>
<table class="one">
<tr>
<th>Roll Number</th>
<th>Name</th>
</tr>
<tr>
<td>1</td>
<td>A_B_C</td>
</tr>
<tr>
<td>2</td>
<td>X_Y_Z</td>
</tr>
</table>
<br>
<br>
<h2>borders separated:</h2>
<table class="two">
<tr>
<th>Roll Number</th>
<th>Name</th>
</tr>
<tr>
<td>1</td>
<td>A_B_C</td>
</tr>
<tr>
<td>2</td>
<td>X_Y_Z</td>
</tr>
</table>
</body>
</html>
- The first table uses border-collapse: collapse;, making borders merge into a single line.
- The second table uses border-collapse: separate;, keeping borders distinct and spaced apart.
3. Border Spacing
Border Spacing property specifies the distance between the borders of adjacent cells when border-collapse is set to separate.
Syntax:
border-spacing: value;
HTML
<html>
<head>
<style>
table.one {
border-collapse: separate;
border-spacing: 10px;
}
table.two {
border-collapse: separate;
border-spacing: 10px 30px;
}
table,
td,
th {
border: 1.5px solid blue;
}
</style>
</head>
<body>
<table class="one">
<tr>
<th>Roll Number</th>
<th>Name</th>
</tr>
<tr>
<td>1</td>
<td>A_B_C</td>
</tr>
<tr>
<td>2</td>
<td>X_Y_Z</td>
</tr>
</table>
<br>
<br>
<table class="two">
<tr>
<th>Roll Number</th>
<th>Name</th>
</tr>
<tr>
<td>1</td>
<td>A_B_C</td>
</tr>
<tr>
<td>2</td>
<td>X_Y_Z</td>
</tr>
</table>
</body>
</html>
- The first table uses border-spacing: 10px;, adding equal 10-pixel spacing between all cells.
- The second table uses border-spacing: 10px 30px;, adding 10 pixels of horizontal and 30 pixels of vertical spacing between cells.
4. Caption Side
Caption Side property specifies the placement of the table caption relative to the table.
Syntax:
caption-side: top/bottom;
HTML
<html>
<head>
<style>
body {
text-align: left;
}
h1 {
color: green;
}
table.one {
border-collapse: separate;
border-spacing: 10px;
caption-side: top;
}
table.two {
border-collapse: separate;
border-spacing: 10px;
caption-side: bottom;
}
table,
td,
th {
border: 1.5px solid blue;
}
</style>
</head>
<body>
<table class="one">
<caption>Caption at the top of the table.</caption>
<tr>
<th>Roll Number</th>
<th>Name</th>
</tr>
<tr>
<td>1</td>
<td>A_B_C</td>
</tr>
<tr>
<td>2</td>
<td>X_Y_Z</td>
</tr>
</table>
<br>
<br>
<table class="two">
<caption> Caption at the bottom of the table </caption>
<tr>
<th>Roll Number</th>
<th>Name</th>
</tr>
<tr>
<td>1</td>
<td>A_B_C</td>
</tr>
<tr>
<td>2</td>
<td>X_Y_Z</td>
</tr>
</table>
</body>
</html>
- The first table uses caption-side: top;, placing the caption above the table.
- The second table uses caption-side: bottom;, positioning the caption below the table.
5. Empty cells
Empty cells property specifies whether or not to display borders and background on empty cells in a table.
Syntax:
empty-cells:show/hide;
HTML
<html>
<head>
<style>
table.one {
border-collapse: separate;
border-spacing: 10px;
empty-cells: hide;
}
table.two {
border-collapse: separate;
border-spacing: 10px;
empty-cells: show;
}
table,
td,
th {
border: 1.5px solid blue;
}
</style>
</head>
<body>
<table class="one">
<tr>
<th>Roll Number</th>
<th>Name</th>
</tr>
<tr>
<td>1</td>
<td></td>
</tr>
<tr>
<td>2</td>
<td>X_Y_Z</td>
</tr>
</table>
<br>
<br>
<table class="two">
<tr>
<th>Roll Number</th>
<th>Name</th>
</tr>
<tr>
<td>1</td>
<td></td>
</tr>
<tr>
<td>2</td>
<td>X_Y_Z</td>
</tr>
</table>
</body>
</html>
- The first table uses empty-cells: hide;, which hides borders and backgrounds of empty cells, making them invisible.
- The second table uses empty-cells: show;, ensuring that empty cells are displayed with their borders and backgrounds.
6. Table layout
The Table layout property is used to set up the layout algorithm used for the table.
Syntax:
table-layout:auto/fixed;
HTML
<html>
<head>
<style>
table.one {
width: 80px border-collapse: separate;
border-spacing: 10px;
table-layout: auto;
}
table.two {
width: 80px border-collapse: separate;
border-spacing: 10px;
table-layout: fixed;
}
table,
td,
th {
border: 1.5px solid blue;
width: 80px;
}
</style>
</head>
<body>
<table class="one">
<tr>
<th>Roll Number</th>
<th>Name</th>
</tr>
<tr>
<td>1</td>
<td>A_B_C_D_E_F_G_H_I_J_K_L_M_N_O_P</td>
</tr>
<tr>
<td>2</td>
<td>X_Y_Z</td>
</tr>
</table>
<br>
<br>
<table class="two">
<tr>
<th>Roll Number</th>
<th>Name</th>
</tr>
<tr>
<td>1</td>
<td>A_B_C_D_E_F_G_H_I_J_K_L_M_N_O_P</td>
</tr>
<tr>
<td>2</td>
<td>X_Y_Z</td>
</tr>
</table>
</body>
</html>
- The first table uses table-layout: auto;, adjusting column widths dynamically based on content size.
- The second table uses table-layout: fixed;, making column widths fixed and ignoring content size.
Best Practices for Using CSS with Tables
- Use border-collapse Property: Apply border-collapse: collapse; to merge table borders into a single border, creating a cleaner appearance.
- Ensure Responsive Design: Implement responsive design techniques to make tables adaptable to various screen sizes, enhancing user experience across devices.
- Utilize Semantic HTML Elements: Employ appropriate HTML elements like <thead>, <tbody>, and <tfoot> to structure your table content semantically, improving accessibility and maintainability.
Similar Reads
CSS Tutorial
CSS stands for Cascading Style Sheets. It is a stylesheet language used to style and enhance website presentation. CSS is one of the main three components of a webpage along with HTML and JavaScript.HTML adds Structure to a web page.JavaScript adds logic to it and CSS makes it visually appealing or
6 min read
CSS Introduction
CSS (Cascading Style Sheets) is a language designed to simplify the process of making web pages presentable. It allows you to apply styles to HTML documents by prescribing colors, fonts, spacing, and positioning.The main advantages are the separation of content (in HTML) and styling (in CSS) and the
5 min read
CSS Syntax
CSS (Cascading Style Sheets) is a stylesheet language used to describe the presentation of a document written in HTML. Understanding CSS syntax is fundamental for creating visually appealing and well-structured web pages. Basic CSS SyntaxCSS is written as rulesets. A ruleset consists of a selector a
6 min read
CSS Selectors
CSS selectors are used to target HTML elements on your pages, allowing you to apply styles based on their ID, class, type attributes, and more. There are mainly 5 types of selectors.Basic CSS Selectors: These are used to target elements by tag, .class, or #id for fundamental styling needs.Combinator
7 min read
CSS Comments
CSS comments are used to add notes or explanations to your code, helping you and others understand it better. They start with /* and end with */ and can be used for both single-line and multi-line comments. Note: Comments are ignored by browsers, so they wonât affect how your webpage looks or works.
2 min read
CSS Colors
CSS colors are used to set the color of different parts of a webpage, like text, background, and borders. This helps make the page look more attractive and easier to read. You can define colors using names, hex codes, RGB values, and more. You can try different formats of colors here- #content-ifram
6 min read
CSS Borders
Borders in CSS are used to create a visible outline around an element. They can be customized in terms of Width: The thickness of the border.Style: The appearance of the border (solid, dashed, dotted, etc.).Color: The color of the border.You can try different types of borders here- #custom-iframe{ h
6 min read
CSS Margins
CSS margins are used to create space around an element, separating it from neighboring elements and the edges of the webpage. They control the layout by adjusting the distance between elements, providing better organization and readability. Syntax:body { margin: value;}[GFGTABS] HTML <!--Driver C
4 min read
CSS Height and Width
Height and Width in CSS are used to set the height and width of boxes. Their values can be set using length, percentage, or auto. Width and HeightThe width and height properties in CSS are used to define the dimensions of an element. The values can be set in various units, such as pixels (px), centi
4 min read
CSS Outline
CSS outline is a property used to draw a line around an element's border. It does not affect the layout, unlike borders. It's often used to highlight elements, providing a visual emphasis without altering the dimensions of the element. Syntaxselector{ outline: outline-width outline-type outline-colo
4 min read