CSS(十)——用 CSS 设置表格样式

1.设置表格的边框
border:设置表格边框;
border-spacing :设置单元格的间距;
border-collapse:设置边框分离,合并 默认是 separate(分离) collapse 合并;
padding:设置单元格内容和边框之间的距离;
我们先来建立一个表格:
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body><table> <!-- 标题caption --> <caption>学生信息</caption> <!-- 表头thead --> <thead> <tr> <th>序号</th> <th>学号</th> <th>姓名</th> <th>性别</th> <th>出生日期</th> </tr> </thead> <!-- 表格的主体内容tbody --> <tbody> <tr> <th>1</th> <td>001</td> <td>张三</td> <td>男</td> <td>2012-12-12</td> </tr> <tr> <th>2</th> <td>002</td> <td>李四</td> <td>女</td> <td>2011-11-11</td> </tr> <tr> <th>3</th> <td>003</td> <td>王五</td> <td>女</td> <td>2010-10-10</td> </tr> <tr> <th>4</th> <td>004</td> <td>赵六</td> <td>女</td> <td>2009-10-10</td> </tr> <tr> <th>5</th> <td>005</td> <td>钱七</td> <td>男</td> <td>2008-01-01</td> </tr> </tbody> <!-- 表脚部分tfoot --> <tfoot> <tr> <th>总计</th> <th colspan="4">5条数据</th> </tr> </tfoot></table></body></html>运行结果:
1.1 设置表格边框
border:设置表格边框;
运行结果:
1.2 设置单元格的间距;
border-spacing :设置单元格的间距;
运行结果:
我们可以发现单元格之间的距离为 0 了,但是其实单元格之间的线为 2px;
1.3 设置边框分离,合并 默认是 separate(分离) collapse (合并);
border-collapse:设置边框分离,合并 默认是 separate(分离) collapse 合并;
上面我们说到单元格之间的距离是 2px,原因是 border 边框默认是 separate(1px),然后我们设置 border-spacing 为 0,因此将两个边框重叠在一起,所以为 2px;
这里我们将边框设置为合并;
运行结果:
可以明显地看到,中间单元格之间的线变淡了一点,其实已经由 2px 改为 1px 了;
1.4 设置单元格内容和边框之间的距离;
padding:设置单元格内容和边框之间的距离;
运行结果:
可以看到单元格里面的内容与边框之间的距离已经大了,为 5px;
整个边框的完整代码:
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title><style type="text/css"> .t{ border: 1px gray solid; /* 设置单元格的间距 */ border-spacing: 0px; /* 设置边框合并collapse,默认是分离separate*/ border-collapse: collapse; } .t th{ border: 1px gray solid; /* 设置单元格内容与边框之间的距离 */ padding: 5px; } .t td{ border: 1px gray solid; /* 设置单元格内容与边框之间的距离 */ padding: 5px; }</style></head><body><table class="t"> <!-- 标题caption --> <caption>学生信息</caption> <!-- 表头thead --> <thead> <tr> <th>序号</th> <th>学号</th> <th>姓名</th> <th>性别</th> <th>出生日期</th> </tr> </thead> <!-- 表格的主体内容tbody --> <tbody> <tr> <th>1</th> <td>001</td> <td>张三</td> <td>男</td> <td>2012-12-12</td> </tr> <tr> <th>2</th> <td>002</td> <td>李四</td> <td>女</td> <td>2011-11-11</td> </tr> <tr> <th>3</th> <td>003</td> <td>王五</td> <td>女</td> <td>2010-10-10</td> </tr> <tr> <th>4</th> <td>004</td> <td>赵六</td> <td>女</td> <td>2009-10-10</td> </tr> <tr> <th>5</th> <td>005</td> <td>钱七</td> <td>男</td> <td>2008-01-01</td> </tr> </tbody> <!-- 表脚部分tfoot --> <tfoot> <tr> <th>总计</th> <th colspan="4">5条数据</th> </tr> </tfoot></table></body></html>2.设置表格的宽度
Table-layout
默认 auto 自动方式,根据单元格的内容自动调整宽度;
Fixed 固定方式 表格宽度固定;
运行结果:
3.设置表格隔行换色
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title><style type="text/css"> .t{ border: 1px gray solid; /* 设置单元格的间距 */ border-spacing: 0px; /* 设置边框合并collapse,默认是分离separate*/ border-collapse: collapse; /* 设置表格宽度 */ width:500px; /* 设置表格宽度的布局,默认是auto*/ table-layout: auto; } .t th{ border: 1px gray solid; /* 设置单元格内容与边框之间的距离 */ padding: 5px; } .t td{ border: 1px gray solid; /* 设置单元格内容与边框之间的距离 */ padding: 5px; } .t tr{ /* 设置表格内容背景色 */ background-color: red; } tbody tr.even{ /* 设置表格偶数行的背景色 */ background-color: yellow; }</style></head><body><table class="t"> <!-- 标题caption --> <caption>学生信息</caption> <!-- 表头thead --> <thead> <tr> <th>序号</th> <th>学号</th> <th>姓名</th> <th>性别</th> <th>出生日期</th> </tr> </thead> <!-- 表格的主体内容tbody --> <tbody> <tr> <th>1</th> <td>001</td> <td>张三</td> <td>男</td> <td>2012-12-12</td> </tr> <tr class="even"> <th>2</th> <td>002</td> <td>李四</td> <td>女</td> <td>2011-11-11</td> </tr> <tr> <th>3</th> <td>003</td> <td>王五</td> <td>女</td> <td>2010-10-10</td> </tr> <tr class="even"> <th>4</th> <td>004</td> <td>赵六</td> <td>女</td> <td>2009-10-10</td> </tr> <tr> <th>5</th> <td>005</td> <td>钱七</td> <td>男</td> <td>2008-01-01</td> </tr> </tbody> <!-- 表脚部分tfoot --> <tfoot> <tr> <th>总计</th> <th colspan="4">5条数据</th> </tr> </tfoot></table></body></html>运行结果:
4.设置表格列样式
比如上面的第 2 个:
如果要将学号这一列的数据居中显示,那么可以采用邻接选择器;
运行结果:
可以看到"学号"与"性别"这两列的内容已经居中,而且还可以修改背景颜色;
完整代码:
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title><style type="text/css"> .t{ border: 1px gray solid; /* 设置单元格的间距 */ border-spacing: 0px; /* 设置边框合并collapse,默认是分离separate*/ border-collapse: collapse; /* 设置表格宽度 */ width:500px; /* 设置表格宽度的布局,默认是auto*/ table-layout: auto; } .t th{ border: 1px gray solid; /* 设置单元格内容与边框之间的距离 */ padding: 5px; } .t td{ border: 1px gray solid; /* 设置单元格内容与边框之间的距离 */ padding: 5px; } /* 将学号这一列的内容设置居中 */ th+td{ /* 邻接选择器 */ text-align: center; } /* 将性别这一列设置居中显示 */ th+td+td+td{ text-align: center; background-color: red; }</style></head><body><table class="t"> <!-- 标题caption --> <caption>学生信息</caption> <!-- 表头thead --> <thead> <tr> <th>序号</th> <th>学号</th> <th>姓名</th> <th>性别</th> <th>出生日期</th> </tr> </thead> <!-- 表格的主体内容tbody --> <tbody> <tr> <th>1</th> <td>001</td> <td>张三</td> <td>男</td> <td>2012-12-12</td> </tr> <tr> <th>2</th> <td>002</td> <td>李四</td> <td>女</td> <td>2011-11-11</td> </tr> <tr> <th>3</th> <td>003</td> <td>王五</td> <td>女</td> <td>2010-10-10</td> </tr> <tr> <th>4</th> <td>004</td> <td>赵六</td> <td>女</td> <td>2009-10-10</td> </tr> <tr> <th>5</th> <td>005</td> <td>钱七</td> <td>男</td> <td>2008-01-01</td> </tr> </tbody> <!-- 表脚部分tfoot --> <tfoot> <tr> <th>总计</th> <th colspan="4">5条数据</th> </tr> </tfoot></table></body></html>5.设置鼠标经过时行变色效果;
我们可以设置鼠标经过表格时,表格内容变色,这是一个鼠标事件 hover;
运行结果:
完整代码:
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title><style type="text/css"> .t{ border: 1px gray solid; /* 设置单元格的间距 */ border-spacing: 0px; /* 设置边框合并collapse,默认是分离separate*/ border-collapse: collapse; /* 设置表格宽度 */ width:500px; /* 设置表格宽度的布局,默认是auto*/ table-layout: auto; } .t th{ border: 1px gray solid; /* 设置单元格内容与边框之间的距离 */ padding: 5px; } .t td{ border: 1px gray solid; /* 设置单元格内容与边框之间的距离 */ padding: 5px; } /* 设置鼠标经过时行变色效果 */ tbody tr:HOVER { /* 设置鼠标经过背景颜色变为淡青色 */ background-color: aqua; }</style></head><body><table class="t"> <!-- 标题caption --> <caption>学生信息</caption> <!-- 表头thead --> <thead> <tr> <th>序号</th> <th>学号</th> <th>姓名</th> <th>性别</th> <th>出生日期</th> </tr> </thead> <!-- 表格的主体内容tbody --> <tbody> <tr> <th>1</th> <td>001</td> <td>张三</td> <td>男</td> <td>2012-12-12</td> </tr> <tr> <th>2</th> <td>002</td> <td>李四</td> <td>女</td> <td>2011-11-11</td> </tr> <tr> <th>3</th> <td>003</td> <td>王五</td> <td>女</td> <td>2010-10-10</td> </tr> <tr> <th>4</th> <td>004</td> <td>赵六</td> <td>女</td> <td>2009-10-10</td> </tr> <tr> <th>5</th> <td>005</td> <td>钱七</td> <td>男</td> <td>2008-01-01</td> </tr> </tbody> <!-- 表脚部分tfoot --> <tfoot> <tr> <th>总计</th> <th colspan="4">5条数据</th> </tr> </tfoot></table></body></html>我是【程序员的时光】,热爱技术分享,信仰终身学习,爱健身,会点厨艺的热血青年,我们下期再见!
版权声明: 本文为 InfoQ 作者【程序员的时光】的原创文章。
原文链接:【http://xie.infoq.cn/article/0ebd8cac4cda06e80a46f46a2】。文章转载请联系作者。
程序员的时光
程序员的路,会越来越精彩! 2020.04.30 加入
公众号:程序员的时光 记录学习编程的一路时光,从小白到现在也能稳操胜券; 主要从事Java后台开发,数据结构与算法,设计模式等等; 欢迎一起交流,分享经验,学习进步!











评论