CSS 表格
使用 CSS 可以极大地改善 HTML 表格的外观:
Company | Contact | Address | City |
---|---|---|---|
Alibaba | Ma Yun | No. 699, Wangshang Road, Binjiang District | Hangzhou |
APPLE | Tim Cook | 1 Infinite Loop Cupertino, CA 95014 | Cupertino |
BAIDU | Li YanHong | Lixiang guoji dasha,No 58, beisihuanxilu | Beijing |
Canon | Tsuneji Uchida | One Canon Plaza Lake Success, NY 11042 | New York |
Larry Page | 1600 Amphitheatre Parkway Mountain View, CA 94043 | Mountain View | |
HUAWEI | Ren Zhengfei | Putian Huawei Base, Longgang District | Shenzhen |
Microsoft | Bill Gates | 15700 NE 39th St Redmond, WA 98052 | Redmond |
Nokia | Olli-Pekka Kallasvuo | P.O. Box 226, FIN-00045 Nokia Group | Helsinki |
SONY | Kazuo Hirai | Park Ridge, NJ 07656 | Park Ridge |
Tencent | Ma Huateng | Tencent Building, High-tech Park, Nanshan District | Shenzhen |
表格边框
如需在 CSS 中设置表格边框,请使用 border
属性。
下例为 <table>
、<th>
和 <td>
元素规定了黑色边框:
trycss_table_border_iframe.htm
实例
table, th, td {
border: 1px solid black;
}
注意:上例中的表格拥有双边框。这是因为 table 和 <th>
和 <td>
元素都有单独的边框。
全宽表格
在某些情况下,上表似乎很小。如果您需要一个可以覆盖整个屏幕(全宽)的表格,请为 <table>
元素添加 width: 100%:
实例
table {
width: 100%;
}
双边框
请注意上面的表格有双边框。这是因为表格和 th、td 元素都有单独的边框。
如需删除双边框,请看下面的例子。
合并表格边框
border-collapse
属性设置是否将表格边框折叠为单一边框:
trycss_table_border-collapse_iframe.htm
实例
table {
border-collapse: collapse;
}
table, th, td {
border: 1px solid black;
}
如果只希望表格周围有边框,则仅需为 <table>
指定 border
属性:
trycss_table_border2_iframe.htm
实例
table {
border: 1px solid black;
}
表格宽度和高度
表格的宽度和高度由 width
和 height
属性定义。
下例将表的宽度设置为 100%,将 <th>
元素的高度设置为 50px:
实例
table {
width: 100%;
}
th {
height: 50px;
}
要创建仅占页面一半的表,请使用 width: 50%:
实例
table {
width: 50%;
}
th {
height: 70px;
}
水平对齐
text-align 属性设置 <th>
或 <td>
中内容的水平对齐方式(左、右或居中)。
默认情况下,<th>
元素的内容居中对齐,而 <td>
元素的内容左对齐。
要使 <td>
元素的内容也居中对齐,请使用 text-align: center
:
实例
th {
text-align: center;
}
下例使 <th>
元素中的文本左对齐:
实例
th {
text-align: left;
}
垂直对齐
vertical-align 属性设置 <th>
或 <td>
中内容的垂直对齐方式(上、下或居中)。
默认情况下,表中内容的垂直对齐是居中(<th>
和 <td>
元素都是)。
下例将 <td>
元素的垂直文本对齐方式设置为下对齐:
trycss_table_vertical-align_iframe.htm
实例
td {
height: 50px;
vertical-align: bottom;
}
表格内边距
如需控制边框和表格内容之间的间距,请在 <td>
和 <th>
元素上使用 padding 属性:
trycss_table_border-padding_iframe.htm
实例
th, td {
padding: 15px;
text-align: left;
}
水平分隔线
向 <th>
和 <td>
添加 border-bottom
属性,以实现水平分隔线:
实例
th, td {
border-bottom: 1px solid #ddd;
}
可悬停表格
在 <tr>
元素上使用 :hover
选择器,以突出显示鼠标悬停时的表格行:
实例
tr:hover {background-color: #f5f5f5;}
条状表格
为了实现斑马纹表格效果,请使用 nth-child()
选择器,并为所有偶数(或奇数)表行添加background-color
:
实例
tr:nth-child(even) {background-color: #f2f2f2;}
表格颜色
下例指定了 <th>
元素的背景颜色和文本颜色:
实例
th {
background-color: #4CAF50;
color: white;
}
响应式表格
如果屏幕太小而无法显示全部内容,则响应式表格会显示水平滚动条:
在 <table>
元素周围添加带有 overflow-x:auto
的容器元素(例如 <div>
),以实现响应式效果:
实例
<div style="overflow-x:auto;">
<table>
... table content ...
</table>
</div>
注释:在 OS X Lion(在 Mac 上)中,滚动条默认情况下是隐藏的,并且仅在使用时显示(即使设置了 “overflow:scroll”)。
更多实例
做一张花式表格
本例演示如何创建花式表格。
<head>
<style>
#customers {
font-family: Arial, Helvetica, sans-serif;
border-collapse: collapse;
width: 100%;
}
#customers td, #customers th {
border: 1px solid #ddd;
padding: 8px;
}
#customers tr:nth-child(even){background-color: #f2f2f2;}
#customers tr:hover {background-color: #ddd;}
#customers th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
background-color: #4CAF50;
color: white;
}
</style>
</head>
<body>
<table id="customers">
<tr>
<th>Company</th>
<th>Contact</th>
<th>Address</th>
<th>City</th>
</tr>
<tr>
<td>Alibaba</td>
<td>Ma Yun</td>
<td>No. 699, Wangshang Road, Binjiang District</td>
<td>Hangzhou</td>
</tr>
<tr>
<td>APPLE</td>
<td>Tim Cook</td>
<td>1 Infinite Loop Cupertino, CA 95014</td>
<td>Cupertino</td>
</tr>
<tr>
<td>BAIDU</td>
<td>Li YanHong</td>
<td>Lixiang guoji dasha,No 58, beisihuanxilu</td>
<td>Beijing</td>
</tr>
<tr>
<td>Canon</td>
<td>Tsuneji Uchida</td>
<td>One Canon Plaza Lake Success, NY 11042</td>
<td>New York</td>
</tr>
<tr>
<td>Google</td>
<td>Larry Page</td>
<td>1600 Amphitheatre Parkway Mountain View, CA 94043</td>
<td>Mountain View</td>
</tr>
<tr>
<td>HUAWEI</td>
<td>Ren Zhengfei</td>
<td>Putian Huawei Base, Longgang District</td>
<td>Shenzhen</td>
</tr>
<tr>
<td>Microsoft</td>
<td>Bill Gates</td>
<td>15700 NE 39th St Redmond, WA 98052</td>
<td>Redmond</td>
</tr>
<tr>
<td>Nokia</td>
<td>Olli-Pekka Kallasvuo</td>
<td>P.O. Box 226, FIN-00045 Nokia Group</td>
<td>Helsinki</td>
</tr>
<tr>
<td>SONY</td>
<td>Kazuo Hirai</td>
<td>Park Ridge, NJ 07656</td>
<td>Park Ridge</td>
</tr>
<tr>
<td>Tencent</td>
<td>Ma Huateng</td>
<td>Tencent Building, High-tech Park, Nanshan District</td>
<td>Shenzhen</td>
</tr>
</table>
</body>
设置表格标题的位置
本例演示了如何放置表格标题。
<head>
<style>
table, td, th {
border: 1px solid black;
}
caption {
caption-side: bottom;
}
</style>
</head>
<body>
<table>
<caption>Table 1.1 Customers</caption>
<tr>
<th>Company</th>
<th>Contact</th>
<th>City</th>
</tr>
<tr>
<td>Alibaba</td>
<td>Ma Yun</td>
<td>Hangzhou</td>
</tr>
<tr class="alt">
<td>Hangzhou</td>
<td>Tim Cook</td>
<td>Cupertino</td>
</tr>
<tr>
<td>BAIDU</td>
<td>Li YanHong</td>
<td>Beijing</td>
</tr>
<tr class="alt">
<td>HUAWEI</td>
<td>Ren Zhengfei</td>
<td>Shenzhen</td>
</tr>
<tr>
<td>Tencent</td>
<td>Ma Huateng</td>
<td>Shenzhen</td>
</tr>
</table>
</body>
CSS 表格属性
属性 | 描述 |
---|---|
border | 简写属性。在一条声明中设置所有边框属性。 |
border-collapse | 规定是否应折叠表格边框。 |
border-spacing | 规定相邻单元格之间的边框的距离。 |
caption-side | 规定表格标题的位置。 |
empty-cells | 规定是否在表格中的空白单元格上显示边框和背景。 |
table-layout | 设置用于表格的布局算法。 |