CSS表格样式(table)
table-layout:设置表格的布局算法,布局算法有两种,分别为固定表格布局算法和自动表格布局算法;
border-collapse:设置表格中单元格的边框是并在一起还是按照标准的 HTML 样式分开;
border-spacing:设置当表格边框分开时,相邻两个边框在横向和纵向上的间距;
caption-side:设置表格标题相对于表格的位置;
empty-cells:设置当表格的单元格中没有内容时,是否显示该单元格的边框。
1. table-layout
table-layout 属性用来设置表格布局时所用的布局算法,属性的可选值如下:值 | 描述 |
|---|---|
automatic | 默认值,自定表格布局,表示表格中每列的宽度视单元格中的内容而定 |
fixed | 固定表格布局,表示表格的宽度由列宽度、单元格边框、单元格之间的间距等因素而定 |
inherit | 从父元素继承 table-layout 属性的值 |
1) 固定表格布局
固定表格布局允许浏览器更快地对表格进行布局。在固定表格布局中,表格的水平宽度仅取决于列宽度、表格边框宽度、单元格间距等因素,与单元格中的内容无关。也就是说,表格中超出表格宽度的内容可能会被忽略。2) 自动表格布局
在自动表格布局中,列的宽度视单元格中的内容(没有换行的最宽内容)而定,也就是说如果某个单元格的宽度为 100px,但单元格中内容所占据的宽度要大于 100px,这就会导致单元格中的内容将单元格撑大。正是因为这一特点,此种算法可能会比较慢。2. border-collapse
border-collapse 属性用来设置是否并表格中相邻的边框,属性的可选值如下:值 | 描述 |
|---|---|
separate | 默认值,相邻的两个边框是分开的,使用它不会忽略 border-spacing 和 empty-cells 属性 |
collapse | 相邻的两个边框会并为一个单一的边框,使用它会忽略 border-spacing 和 empty-cells 属性 |
inherit | 从父元素继承 border-collapse 属性的值 |
【示例】通过 border-collapse 属性来并或拆分单元格的边框:
运行结果如下图所示:<!DOCTYPE html>
<html>
<head>
<style>
table {
float: left;
}
.table_one {
border-collapse: separate;
}
.table_two {
margin-left: 20px;
border-collapse: collapse;
}
</style>
</head>
<body>
<table class="table_one" border="1">
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<tr>
<td>1</td>
<td>张三</td>
<td>15</td>
</tr>
<tr>
<td>2</td>
<td>李四</td>
<td>11</td>
</tr>
</table>
<table class="table_two" border="1px">
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<tr>
<td>1</td>
<td>张三</td>
<td>15</td>
</tr>
<tr>
<td>2</td>
<td>李四</td>
<td>11</td>
</tr>
</table>
</body>
</html>

图:border-collapse 属性演示
默认情况下表格的边框是隐藏的,所以上面示例中我们需要使用
<table> 标签的 border 属性来显示边框,另外,您也可以使用 CSS 的 border 属性来为表格设置边框,如下所示:table, th, td {
border: 1px solid black;
}
3. border-spacing
border-spacing 属性可以设置相邻单元格边框之间的距离(仅在 border-collapse 属性为 separate 时才有效),它的效果等同于 <table> 标签的 cellspacing 属性(即 border-spacing:0; 等同于 cellspacing="0")。border-spacing 属性的语法格式如下:border-spacing: length length;
参数 length 由数值和单位组成,表示相邻单元格边框之间的距离,其可选值如下:值 | 描述 |
|---|---|
length | 以数值加单位的形式设置相邻边框之间的间距,例如 2px,不允许使用负值。如果只定义一个 length 参数,那么这个值将同时作用于横向和纵向的间距;如果同时定义两个 length 参数,那么个 length 参数表示相邻边框的横向间距,第二个 length 参数表示相邻边框的纵向间距 |
inherit | 从父元素继承 border-spacing 属性的值 |
【示例】使用 border-spacing 属性设置表格中相邻边框的间距:
运行结果如下图所示:<!DOCTYPE html>
<html>
<head>
<style>
table {
float: left;
}
.table_one {
border-spacing: 15px 10px;
}
.table_two {
margin-left: 20px;
border-spacing: 20px;
}
</style>
</head>
<body>
<table class="table_one" border="1">
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<tr>
<td>1</td>
<td>张三</td>
<td>15</td>
</tr>
<tr>
<td>2</td>
<td>李四</td>
<td>11</td>
</tr>
</table>
<table class="table_two" border="1px">
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<tr>
<td>1</td>
<td>张三</td>
<td>15</td>
</tr>
<tr>
<td>2</td>
<td>李四</td>
<td>11</td>
</tr>
</table>
</body>
</html>

图:border-spacing 属性演示
4. caption-side
caption-side 属性可以设置表格标题的位置,属性的可选值如下:值 | 描述 |
|---|---|
top | 默认值,将表格标题定位在表格正上方 |
bottom | 将表格标题定位在表格正下方 |
inherit | 从父元素继承 caption-side 属性的值 |
【示例】使用 caption-side 属性设置表格标题的位置:
运行结果如下图所示:<!DOCTYPE html>
<html>
<head>
<style>
table {
float: left;
}
.table_one {
caption-side: top;
}
.table_two {
margin-left: 20px;
caption-side: bottom;
}
</style>
</head>
<body>
<table class="table_one" border="1">
<caption>表格标题</caption>
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<tr>
<td>1</td>
<td>张三</td>
<td>15</td>
</tr>
<tr>
<td>2</td>
<td>李四</td>
<td>11</td>
</tr>
</table>
<table class="table_two" border="1px">
<caption>表格标题</caption>
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<tr>
<td>1</td>
<td>张三</td>
<td>15</td>
</tr>
<tr>
<td>2</td>
<td>李四</td>
<td>11</td>
</tr>
</table>
</body>
</html>

图:caption-side 属性演示
5. empty-cells
empty-cells 属性用来设置当某个单元格中没有内容时,是否显示这个空单元格(仅在 border-collapse 属性为 separate 时才有效),属性的可选值如下:值 | 描述 |
|---|---|
hide | 隐藏空单元格周围的边框 |
show | 默认值,显示空单元格周围的边框 |
inherit | 从父元素继承 empty-cells 属性的值 |
【示例】使用 empty-cells 属性来设置是否隐藏空单元格;
运行结果如下图所示:<!DOCTYPE html>
<html>
<head>
<style>
table {
float: left;
}
.table_one {
empty-cells: hide;
}
.table_two {
margin-left: 20px;
empty-cells: show;
}
</style>
</head>
<body>
<table class="table_one" border="1">
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>2</td>
<td>李四</td>
<td>11</td>
</tr>
</table>
<table class="table_two" border="1px">
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>2</td>
<td>李四</td>
<td>11</td>
</tr>
</table>
</body>
</html>

图:empty-cells 属性演示
- 随机文章
- 斯芬茹马尔代夫(马尔代夫度假胜地-斯芬茹重新开业)
- 作文走进马尔代夫(探秘马尔代夫:一个天堂般的度假胜地)
- 喜苑 马尔代夫(喜苑 马尔代夫:你心目中的完美度假胜地)
- 蛋糕 马尔代夫(马尔代夫蛋糕:绝美美食享受)
- 嵩县马尔代夫门票(嵩县马尔代夫景区门票,畅游热带风情)
- 去马尔代夫来姨妈(来马代疗养:姨妈当不了旅行的绊脚石)
- 湖南马尔代夫风景(湖南这个地方也能有马尔代夫风景?!)
- 左州 马尔代夫(左州游客必去的马尔代夫岛屿)
- 淘宝马尔代夫大蒜(淘宝上可以购买到马尔代夫产的大蒜?)
- 浮潜 马尔代夫(探秘马尔代夫海底世界:浮潜之旅)
- 希腊马尔代夫时差(希腊与马尔代夫时差有多少小时差异?)
- 玉林马尔代夫收费(玉林将向马尔代夫游客收取额外旅游费)
- 渭南马尔代夫温泉(马尔代夫温泉来了!渭南这里开放了!)
- 潮汕马尔代夫海边(潮汕旅行社推出马尔代夫海滩度假线路)
- 苏州马尔代夫饭店(苏州市首家马尔代夫主题酒店盛大启幕)
- 情侣马尔代夫对话(情侣在马尔代夫互动,展现浪漫风情!)
- 皖南马尔代夫攻略(走进皖南竹篮里的马尔代夫,美不胜收)
- 抖音 马尔代夫(抖音热播!探秘马尔代夫,享受奢华度假!)
- 试吃马尔代夫美食(马尔代夫口感盛宴:尝试当地美味佳肴)
- 小型马尔代夫拍照(拍摄美丽小型马尔代夫:完美度假地标)
- 预定酒店马尔代夫(预订马尔代夫酒店,让你的假期更完美)
- 金堂 马尔代夫(金堂游客在马尔代夫留下美好回忆)
- 马尔代夫不能上网(马尔代夫旅游局宣布限制游客上网使用)
- 酷哥马尔代夫美食(探秘马尔代夫美食:美味与文化的交融)
- 芜湖马尔代夫图片(赏心悦目!芜湖模拟马尔代夫照片展示)
- 泰国海岛马尔代夫(泰国岛屿拥有媲美马尔代夫的美丽风光)
- 马尔代夫传统房子(重建马尔代夫传统房屋:传承文化遗产)
- 马尔代夫农业品种(马尔代夫推广多样化农业,引进新品种)
- 马尔代夫可以抽烟(马尔代夫允许吸烟,但需遵守相关规定)
- 马尔代夫劳务签证(马尔代夫劳务签证申请流程及注意事项)
