在讲述css3选择器之前,我们先来大概的了解一下css3的发展史,这样大家就知道所谓的css3到底是什么了。
HTML的诞生于20世纪90年代初,1996年底,CSS第一版诞生,1998年5月,CSS2正式发布,2004年,CSS2.1发布,2002-2010年,陆续发布部分css3新增属性。CSS1 中定义了网页的基本属性:字体、颜色、基本选择器等。
CSS2中在CSS1的基础上添加了高级功能,浮动和定位、高级选择器等(子选择器、相邻选择器、通用选择器。
CSS3遵循的是模块化开发。发布时间并不是一个时间点,而是一个时间段。
一、css选择器回顾:
打印代码帮助
1(1)通用选择器:* 选择到所有的元素;
2(2)选择子元素:> 选择到元素的直接后代
3(3)相邻兄弟选择器:+ 选择到紧随目标元素后的第一个元素
4(3)普通兄弟选择器:~ 选择到紧随其后的所有兄弟元素
5(4)伪元素选择器:
6::first-line 匹配文本块的首行
7::first-letter 选择文本块的首字母
8(5)伪类选择器:
9:before,:after在元素内容前面、后面添加内容(相当于行内元素)
例如:选中ul标签后边的第一个div相邻标签。
1ul.list +div.box
二、css3结构选择器:
01(1):nth-child 选择指定索引处的子元素
02(2)nth-child(n) 父元素下的第n个子元素
03(3)nth-child(odd)奇数子元素(同nth-child(2n-1))
04(4)nth-child(even)偶数子元素(同nth-child(2n))
05(5)nth-child(an+b)公式
06(6):nth-last-child(n) 倒数第n个子元素
07(7):nth-of-type(n) 父元素下的第n个指定类型的子元素
08(7):nth-last-of-type 父元素下的倒数第n个指定类型的子元素
09
(8):first-child 选择父元素下的第一个子元素
10(9):last-child 选择父元素下的最后一个子元素
11(10):only-child 选择父元素下唯一的子元素
12(11):only-of-type选择父元素下指定类型的唯一子元素
13(12):root 选择文档的根目录,返回html
例如:选中ul标签里边的第三个li子元素。
1ul li:nth-child(3)
三、css3属性选择器:
1(1)E[attr] 属性名,不确定具体属性值
2(2)E[attr="value"] 指定属性名,并指定其对应属性值
3(3)E[attr ~="value"] 指定属性名,其具有多个属性值空格隔开,并包含 value值
4(4)E[attr ^= "value"] 指定属性名,属性值以value开头
5(5)E[attr $="value"] 指定属性名,属性值以value结束
6(6)E[attr *="value"] 指定了属性名,属性值中包含了value
7(7)E[attr |= "value"] 指定属性名,属性值以value-开头
例如:选中所有的class类并且以类型是指定的value的div元素,让他的背景颜色变成红色。
1div[class="value"]{background:red}
四、css3伪类选择器:
1、UI伪类选择器:
1(1):enabled 选择启用状态元素
2(2):disabled 选择禁用状态元素
3(3):checked 选择被选中的input元素(单选按钮或复选框)
4(4):default 选择默认元素
5(5):valid、invalid 根据输入验证选择有效或无效的input元素
6(6):in-range、out-of-range 选择指定范围之内或者之外受限的元素
7(7):repuired、optional 根据是否允许:required属性选择input元素
例如:有3个input复选框,其中第一个被选中了,它的checked="checked",其他两个没有,那么让这个被选中的复选框的宽高都变成50px。
1input:checked{width:50px;height:50px}
2、动态伪类选择器:
1(1):link 选择链接元素
2 (2):visited 选择用户以访问的元素
3 (3):hover 鼠标悬停其上的元素
4 (4):ative 鼠标点击时触发的事件
5 (5):focus 当前获取焦点的元素
例如:滑过一个div的时候,让它的背景颜色变成红色。
1div:hover{background:red}
3、其他伪类选择器:
1(1):not(<选择器>) 对括号内选择器的选择取反
2(2):lang(<目标语言>) 基于lang全局属性的元素
3(3):target url片段标识符指向的元素
4(4):empty选择内容为空的元素
5(5):selection 鼠标光标选择元素内容
例如:有3个div,前两个都有内容,第三个是空的,什么内容都没有,那么让这个空的div的背景颜色变成橙色。
div:empty{background:orange}
https://www.tuomacms.com/