0

0

结构性伪类选择器—nth-child实现彩色表格案例(代码实例 )

易达

易达

发布时间:2020-06-10 17:05:40

|

2463人浏览过

|

来源于php中文网

原创

本文目标:

1、掌握css中结构性伪类选择器—nth-child的用法

问题:

1、实现以下效果,且使用纯DIV+CSS,必须使用结构性伪类选择器—nth-child

实现目标.png

当鼠标悬停在某个单元格上时,背景变成紫色

实现目标2.png

附加说明:

1、每个单元格宽145,带1个像素边框,左边padding为5,上下padding为15

2、标题字体为20px,加粗

现在来具体操作

1、准备素材:无,不需要准备额外的素材图片

2、创建好index.html,写好架构,架构如何分析呢

思路分析:

1、目标其实是一张表格,我们可以通过很多方式实现它,但是为了更好的显示出nth-child的作用,我们就用ul,li来布局

2、每个li的颜色都是规律性的变化

好,先按照分析,写好思路,暂时不管css的实现

代码如下:





    
    结构性伪类选择器—nth-child



    
项目基本情况
  • 项目名称
  • xxxxxx
  • 地理位置
  • xxxxxx
  • 交通状况
  • xxxxxx
  • 开发商
  • xxxxxx
  • 销售代理公司
  • xxxxxx
  • 商业运营公司
  • xxxxxx
  • 项目性质
  • xxxxxx
  • 功能定位
  • xxxxxx
  • 目标消费群
  • xxxxxx
  • 开盘时间
  • xxxxxx
  • 竣工时间
  • xxxxxx
  • 开业时间
  • xxxxxx
  • 售楼电话
  • xxxxxx
  • 销售招商位置
  • xxxxxx
  • 总建筑面积
  • xxxxxx
  • 商业面积
  • xxxxxx
  • 停车位面积
  • xxxxxx
  • 产权年限
  • xxxxxx

3、写样式 ,创建css文件夹,里面新建index.css,里面的样式怎么写了,以下是分析思路

思路分析:

整体表格.table

1、根据要求得知,每列的宽是均分的,所以该容器的宽=145*4+8个边框 = 608,且带灰色边框显示

所以index.css中添加代码如下:

魔珐星云
魔珐星云

无需昂贵GPU,一键解锁超写实/二次元等多风格3D数字人,跨端适配千万级并发的具身智能平台。

下载
.table {
   width: 608px;
   border: 1px solid gray;
}

标题

1、背景色为灰色,字体颜色为白色,上下存有间距,字体大小为20,加粗,居中显示

所以index.css中添加代码如下:

.caption {
   background-color: gray;
   color: white;
   padding: 15px 0px;
   font-size: 20px;
   font-weight: bold;
   text-align: center;
}

ul,li

1、ul默认是有padding,所以为了不影响布局,需要取消默认padding,margin

2、根据以上要求,li不带黑色圆点,带灰色边框,宽145,上下存有间距,且水平排列所以必须要浮动float

所以index.css中添加代码如下:

ul{
   padding: 0;
   margin: 0;
}
li{
   list-style: none;
   border:1px solid lightgray;
   width: 145px;
   padding:15px 0 15px 5px;
   float: left;
}

清除浮动的li

1、为了让ul还是能包裹住浮动的li,所以最后一列要清除浮动,但是为了不影响布局,所以宽高要设置0,padding,margin也要设置0,否则也还是会有padding

所以index.css中添加代码如下:

.clear{
   width:0;
   height: 0;
   float: none;
   clear: both;
   padding: 0;
   margin: 0;
}

带红色字体的li

1、我们发现带红色字体的li,其实它的li的序号分别为3,7,11,15,19,23......这个是有规律的,所以我们可以使用nth-child选择器来实现,nth-child()括号里可以填写表达式,比如2n这些,表达式的n是从0开始的,所以根据这个规律我们可以得出表达式为4n+3,我们可以把n从0开始代入可以发现会得出序号3,7,11,15,19,23......所以表达式是对的

所以index.css中添加代码如下:

ul>:nth-child(4n+3){
   color:red;
}

带绿色字体的li

1、我们发现带绿色字体的li,其实它的li的序号分别为1,5,9,13,17,21,25.....这个也是有规律的,所以我们可以使用nth-child选择器来实现,那么这个表达式怎么写呢,仔细研究发现表达式为

4n+1,我们可以把n从0开始代入可以发现会得出序号1,5,9,13......所以表达式是对的

所以index.css中添加代码如下:

ul>:nth-child(4n+1){
   color:green;
}

带蓝色字体的li

1、我们发现带蓝色字体的li,其实它的li的序号分别为2,4,6,8,10,12.....这个也是有规律的,其实就是偶数列,只是少了0,所以我们可以使用nth-child选择器来实现,那么这个表达式怎么写呢,仔细研究发现表达式为2n+2,我们可以把n从0开始代入可以发现会得出序号2,4,6,8,10,12......所以表达式是对的,其实表达式也可以写成2n,只不过因为0列不存在所以也是对的,不影响最终效果

所以index.css中添加代码如下:

ul>:nth-child( 2n+2 ){
   color:blue;
}

最后4列

1、最后4列(序号为33,34,35,36的li)我们发现底部边框是不需要的,所以需要去除掉,因为最外层的容器的已经有个边框了

所以index.css中添加代码如下:

ul>:nth-child(33){
   border-bottom: 0;
}
ul>:nth-child(34){
   border-bottom: 0;
}
ul>:nth-child(35){
   border-bottom: 0;
}
ul>:nth-child(36){
   border-bottom: 0;
}

鼠标悬浮效果

1、当鼠标悬浮的时候,背景需要变色变成紫色

所以index.css中添加代码如下:

li:hover{
   background-color: plum;
   cursor: pointer;
}

到此为止,index.css代码如下:

.table {
   width: 608px;
   border: 1px solid gray;
}
.caption {
   background-color: gray;
   color: white;
   padding: 15px 0px;
   font-size: 20px;
   font-weight: bold;
   text-align: center;
}

ul{
   padding: 0;
   margin: 0;
}
li{
   list-style: none;
   border:1px solid lightgray;
   width: 145px;
   padding:15px 0 15px 5px;
   float: left;
}
.clear{
   width:0;
   height: 0;
   float: none;
   clear: both;
   padding: 0;
   margin: 0;
}

ul>:nth-child(4n+3){
   color:red;
}
 ul>:nth-child(4n+1){
   color:green;
}
ul>:nth-child( 2n+2 ){
   color:blue;
}
ul>:nth-child(33){
   border-bottom: 0;
}
ul>:nth-child(34){
   border-bottom: 0;
}
ul>:nth-child(35){
   border-bottom: 0;
}
ul>:nth-child(36){
   border-bottom: 0;
}
li:hover{
   background-color: plum;
   cursor: pointer;
}

然后将index.css引入index.html中





    
    结构性伪类选择器—nth-child
    



    
项目基本情况
  • 项目名称
  • xxxxxx
  • 地理位置
  • xxxxxx
  • 交通状况
  • xxxxxx
  • 开发商
  • xxxxxx
  • 销售代理公司
  • xxxxxx
  • 商业运营公司
  • xxxxxx
  • 项目性质
  • xxxxxx
  • 功能定位
  • xxxxxx
  • 目标消费群
  • xxxxxx
  • 开盘时间
  • xxxxxx
  • 竣工时间
  • xxxxxx
  • 开业时间
  • xxxxxx
  • 售楼电话
  • xxxxxx
  • 销售招商位置
  • xxxxxx
  • 总建筑面积
  • xxxxxx
  • 商业面积
  • xxxxxx
  • 停车位面积
  • xxxxxx
  • 产权年限
  • xxxxxx

最终运行效果如下:

实现目标.png

实现目标2.png

总结:

1、学习了结构性伪类选择器—nth-child的用法,这里的难点就是在于要写表达式,所以写表达式的时候需要多花点耐心去总结规律

相关专题

更多
Golang gRPC 服务开发与Protobuf实战
Golang gRPC 服务开发与Protobuf实战

本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

8

2026.01.15

公务员递补名单公布时间 公务员递补要求
公务员递补名单公布时间 公务员递补要求

公务员递补名单公布时间不固定,通常在面试前,由招录单位(如国家知识产权局、海关等)发布,依据是原入围考生放弃资格,会按笔试成绩从高到低递补,递补考生需按公告要求限时确认并提交材料,及时参加面试/体检等后续环节。要求核心是按招录单位公告及时响应、提交材料(确认书、资格复审材料)并准时参加面试。

44

2026.01.15

公务员调剂条件 2026调剂公告时间
公务员调剂条件 2026调剂公告时间

(一)符合拟调剂职位所要求的资格条件。 (二)公共科目笔试成绩同时达到拟调剂职位和原报考职位的合格分数线,且考试类别相同。 拟调剂职位设置了专业科目笔试条件的,专业科目笔试成绩还须同时达到合格分数线,且考试类别相同。 (三)未进入原报考职位面试人员名单。

58

2026.01.15

国考成绩查询入口 国考分数公布时间2026
国考成绩查询入口 国考分数公布时间2026

笔试成绩查询入口已开通,考生可登录国家公务员局中央机关及其直属机构2026年度考试录用公务员专题网站http://bm.scs.gov.cn/pp/gkweb/core/web/ui/business/examResult/written_result.html,查询笔试成绩和合格分数线,点击“笔试成绩查询”按钮,凭借身份证及准考证进行查询。

11

2026.01.15

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

65

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

36

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

75

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

21

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

35

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.8万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.9万人学习

CSS教程
CSS教程

共754课时 | 19.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号