CSS3的nth-child() 选择器(兼容性不好),在做表格偶数行变色的时候,我通常在绑定的时候,做一个js判断,来加一个css,从而使表格偶数行和奇数行颜色不一样。这样的兼容性很好。

但是最近在做手机网站的时候,由于手机网站对浏览器兼容要求相对较低,手机浏览器大部分都支持css3,这就大大提高了开发效率。可以随意使用CSS3 :nth-child()伪类选择器。

IE9及以上版本,火狐,谷歌,Safari ,Opera都支持!

:nth-child(n) 选择器匹配属于其父元素的第 n个子元素,不论元素的类型

n 可以是数字、关键词或公式。

p:nth-child(2)
{
background:#ff0000;
} <body> <h1>这是标题</h1>
<p>haorooms第一个段落。</p>
<p>haorooms第二个段落。</p>
<p>haorooms第三个段落。</p>
<p>haorooms第四个段落。</p> </body>

面这段代码请问那个段落颜色是红色的?

答案是“haorooms第一个段落。”颜色变成了红色!

解释::nth-child(n) 选择器匹配属于其父元素的第 n个子元素,不论元素的类型。p:nth-child(2),P标签的父元素是body,body的第二个子元素是“haorooms第一个段落。”

所以haorooms第一个段落颜色变为了红色!!!

很多朋友经常把:nth-child() 和:nth-of-type()混淆。

CSS3      :nth-of-type(n)选择器匹配同类型中的第n个同级兄弟元素。

p:nth-of-type(2)
{
background:#ff0000;
} <body> <h1>这是标题</h1>
<p>haorooms第一个段落。</p>
<p>haorooms第二个段落。</p>
<p>haorooms第三个段落。</p>
<p>haorooms第四个段落。</p> </body>

现在就是“haorooms第二个段落。”颜色变成了红色。

因为table的子元素一般是tr,不会有别的,所以可以用

tr:nth-child(odd) 与 tr:nth-child(even)

当然也可以用

tr:nth-of-type(odd) tr:nth-of-type(even)

分别匹配序号为奇数与偶数的元素。奇数(odd)与(2n+1)结果一样;偶数(even)与(2n+0)及(2n)结果一样。

倍数写法:

:nth-child(an) 【:nth-of-type(an)同理,不解释】

匹配所有倍数为a的元素。其中参数an中的字母n不可缺省,它是倍数写法的标志,如3n、5n。

li:nth-child(3n){background:orange;}/*把第3、第6、第9、…、所有3的倍数的LI的背景设为橙色*

延伸

:nth-child(2n+1), :nth-child(2n-3) , :nth-child(4n+3) ,还可以 :nth-child(-an+b)也就是反向匹配。

要求:

<!--通过设置表格颜色来练习一下结构化伪类-->

<!--表格中tbody,首行和尾行为不同颜色 中间部分两色交替-->

HTML:

 <!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<!--通过设置表格颜色来练习一下结构化伪类-->
<!--表格中tbody,首行和尾行为不同颜色 中间部分两色交替-->
<link rel="stylesheet" href="demo_tableColor.css">
</head>
<body>
<div id="wrap">
<table id="myTable" border="1" cellspacing="0" cellpadding="2">
<thead>
<tr>
<td>序号</td>
<td>姓名</td>
<td>年龄</td>
<td>备注</td>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>zhangsan</td>
<td>12</td>
<td>1</td>
</tr>
<tr>
<td>12</td>
<td>zhangsan</td>
<td>12</td>
<td>1</td>
</tr>
<tr>
<td>3</td>
<td>zhangsan</td>
<td>12</td>
<td>1</td>
</tr>
<tr>
<td>4</td>
<td>zhangsan</td>
<td>12</td>
<td>1</td>
</tr>
<tr>
<td>4</td>
<td>zhangsan</td>
<td>12</td>
<td>1</td>
</tr>
<tr>
<td>4</td>
<td>zhangsan</td>
<td>12</td>
<td>1</td>
</tr>
<tr>
<td>4</td>
<td>zhangsan</td>
<td>12</td>
<td>1</td>
</tr>
<tr>
<td>5</td>
<td>zhangsan</td>
<td>12</td>
<td>1</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>

css:

 *{
margin: 0px;
padding:0px;
box-sizing: border-box;
}
#wrap{
position: relative;
top: 20px;
left: 20px;
}
#myTable{
width: 900px;
border:1px solid #e6e6e6;
}
td{
padding: 10px 20px;
border-left: transparent;
border-right: transparent;
border-top: transparent;
}
tbody :nth-child(odd) td{
background-color: #d9534f;
}
tbody :nth-child(even) td{
background-color: #eea236;
}
tbody :first-child td{
background-color: #bce8f1;
} tbody :last-child td{
background-color: #67b168;
}

CSS 背景色变化 结构化伪类的练习的更多相关文章

  1. CSS选择器详解(伪类) 转 http://blog.csdn.net/Panda_m/article/details/50084699

    CSS选择器详解 之 伪类 伪类对大小写不敏感 结构伪类选择器 结构伪类是CSS3新增的类型选择器,利用DOM树实现元素过滤,通过文档结构的相互关系来匹配元素,可以减少class和id属性的定义,使文 ...

  2. HTML&CSS基础-子元素的伪类选择器

    HTML&CSS基础-子元素的伪类选择器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.html的源代码 <!DOCTYPE html> <html& ...

  3. CSS 基础知识点 样式 选择器 伪类

    CSS 基础知识点汇集 版权声明:这篇博客是别人写的,大神博客地址 : https://www.cnblogs.com/Mtime/p/5184685.html 1.CSS 简介 CSS 指层叠样式表 ...

  4. CSS基础--属性选择器、伪类选择器

    属性选择器 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  5. 前端知识之CSS(1)-css语法、css选择器(属性、伪类、伪元素、分组与嵌套)、css组合器

    目录 前端基础之css 1.关于css的介绍 2.css语法 3.三种编写CSS的方式 3.1.style内部直接编写css代码 3.2.link标签引入外部css文件 3.3.标签内直接书写 4.c ...

  6. Css详解之(伪类选择器)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. css选择器(常规选择器,伪类选择器,伪元素选择器,根元素选择器)

    前言 CSS的一个核心特性是能向文档中的一组元素类型应用某些规则,本文将详细介绍CSS选择器 选择器 [通配选择器] 星号*代表通配选择器,可以与任何元素匹配 *{color: red;} [元素选择 ...

  8. 李洪强和你一起学习前端之(5)css书写位置 优先级和伪类

    亲爱的,时间过得真快,不知不觉我们一起学习前端已经4天了,这4天的时间里,我们是不是收获很大呢,每当我们学习一个新的知识点的时候,每当我们做出一个新的东西来的时候,我们是不是欣喜若狂,世界从来否不会辜 ...

  9. CSS学习笔记2:伪类

    w3c对伪类的定义是:CSS伪类是用来添加一些选择器的特殊效果. 在我目前看来就是动态的对元素的修饰   它的基本语法是 选择器:伪类{} 伪类有以下几种   常用的伪类:     :link,:vi ...

随机推荐

  1. 第一章、前端之html

    目录 第一章.前端之html 一. html介绍 第一章.前端之html 一. html介绍 web服务本质 import socket sk = socket.socket() sk.bind((& ...

  2. 从0到1写rtos:事件的挂起

    任务的状态: 未创建:只定义了任务代码,未调用tTaskInit()初始化 就绪:任务已经创建完毕,且等待机会占用CPU运行 运行:任务正在占用CPU运行代码 延时:任务调用tTaskDelay()延 ...

  3. PAT Advanced 1152 Google Recruitment (20 分)

    In July 2004, Google posted on a giant billboard along Highway 101 in Silicon Valley (shown in the p ...

  4. APP移动测试

    (转自网络) App测试与传统台式机测试相比有一定的复杂性.这些复杂性可以被分类为: 环境(大量的设备,各种移动OSs,适应频繁OSs变化) . 设备(触摸式和非触摸式设备,有限的内存容量,电池耗电量 ...

  5. 实用: 将程序的内容写出到excel中

    pom <!-- 读取excel文件 --><dependency> <groupId>org.apache.poi</groupId> <art ...

  6. HDU 2897 bash 博弈变形

    一堆石子N个 每个人最少取P个 最多取Q个 最后取光的人输 问谁赢 X=N%(P+Q)  X=0则先手取Q个必胜 X<=P则后手胜 X>P则先手取P个必胜 #include <ios ...

  7. Spring-简介-IOC理论推导

    1.Spring 1.1.简介 Spring:春天----->给软件行业带来了春天! 2002,首次推出了Spring框架的雏形:interface21框架! Spring框架即以interfa ...

  8. metal2 里 programmable blending 和image block的区别 语法以及persistent thread group的语法

    programmable blending 刚接触这个概念的时候 挺激动的 因为能解决很多管线里面的问题 比如 切一次rt再切回来 为了做read write same rt 有了这个 就不用切啦 可 ...

  9. modbus_百度经验

    转自:https://jingyan.baidu.com/article/2c8c281dbdfa9f0009252a74.html 图片都没了,百度真差劲---还是博客园好!!! ModBus通讯规 ...

  10. 关于b站爬虫的尝试(一)

    由于b站爬虫难度较小(url地址主要通过av定位),我第一的爬虫尝试就选择了b站 以下为初步的尝试. 首先,由于初步统计,b站空视频(已下架或者删除)的比例大概是百分之五十(统计样本基本在前几年的视频 ...