css3选择器简介

阅读() @2018-07-15 14:13:29

在讲述css3选择器之前,我们先来大概的了解一下css3的发展史,这样大家就知道所谓的css3到底是什么了。

HTML的诞生于20世纪90年代初,1996年底,CSS第一版诞生,1998年5月,CSS2正式发布,2004年,CSS2.1发布,2002-2010年,陆续发布部分css3新增属性。

CSS1 中定义了网页的基本属性:字体、颜色、基本选择器等。

CSS2中在CSS1的基础上添加了高级功能,浮动和定位、高级选择器等(子选择器、相邻选择器、通用选择器)。

CSS3遵循的是模块化开发。发布时间并不是一个时间点,而是一个时间段。

一、css选择器回顾:

(1)通用选择器:*  选择到所有的元素;
(2)选择子元素:> 选择到元素的直接后代
(3)相邻兄弟选择器:+ 选择到紧随目标元素后的第一个元素
(3)普通兄弟选择器:~ 选择到紧随其后的所有兄弟元素
(4)伪元素选择器:
::first-line 匹配文本块的首行
::first-letter 选择文本块的首字母
(5)伪类选择器:
:before,:after在元素内容前面、后面添加内容(相当于行内元素)

例如:选中ul标签后边的第一个div相邻标签。

ul.list +div.box

二、css3结构选择器:

(1):nth-child 选择指定索引处的子元素
(2)nth-child(n) 父元素下的第n个子元素
(3)nth-child(odd)奇数子元素(同nth-child(2n-1))
(4)nth-child(even)偶数子元素(同nth-child(2n))
(5)nth-child(an+b)公式
(6):nth-last-child(n) 倒数第n个子元素
(7):nth-of-type(n) 父元素下的第n个指定类型的子元素
(7):nth-last-of-type 父元素下的倒数第n个指定类型的子元素
(8):first-child 选择父元素下的第一个子元素
(9):last-child 选择父元素下的最后一个子元素
(10):only-child 选择父元素下唯一的子元素
(11):only-of-type选择父元素下指定类型的唯一子元素
(12):root 选择文档的根目录,返回html

例如:选中ul标签里边的第三个li子元素。

ul li:nth-child(3)

三、css3属性选择器:

(1)E[attr] 属性名,不确定具体属性值
(2)E[attr="value"] 指定属性名,并指定其对应属性值
(3)E[attr ~="value"] 指定属性名,其具有多个属性值空格隔开,并包含  value值
(4)E[attr ^= "value"] 指定属性名,属性值以value开头
(5)E[attr $="value"] 指定属性名,属性值以value结束
(6)E[attr *="value"] 指定了属性名,属性值中包含了value
(7)E[attr |= "value"] 指定属性名,属性值以value-开头 

例如:选中所有的class类并且以类型是指定的value的div元素,让他的背景颜色变成红色。

div[class="value"]{background:red}

四、css3伪类选择器:

1、UI伪类选择器:

(1):enabled 选择启用状态元素
(2):disabled 选择禁用状态元素
(3):checked 选择被选中的input元素(单选按钮或复选框)
(4):default 选择默认元素
(5):valid、invalid 根据输入验证选择有效或无效的input元素
(6):in-range、out-of-range 选择指定范围之内或者之外受限的元素
(7):repuired、optional 根据是否允许:required属性选择input元素

例如:有3个input复选框,其中第一个被选中了,它的checked="checked",其他两个没有,那么让这个被选中的复选框的宽高都变成50px。

input:checked{width:50px;height:50px}

2、动态伪类选择器:

(1):link 选择链接元素
 (2):visited 选择用户以访问的元素
 (3):hover 鼠标悬停其上的元素
 (4):ative 鼠标点击时触发的事件
 (5):focus 当前获取焦点的元素

例如:滑过一个div的时候,让它的背景颜色变成红色。

div:hover{background:red}

3、其他伪类选择器:

(1):not(<选择器>) 对括号内选择器的选择取反
(2):lang(<目标语言>) 基于lang全局属性的元素
(3):target url片段标识符指向的元素
(4):empty选择内容为空的元素
(5):selection 鼠标光标选择元素内容

例如:有3个div,前两个都有内容,第三个是空的,什么内容都没有,那么让这个空的div的背景颜色变成橙色。

div:empty{background:orange}

总结:这些属性必须得自己一个一个的练习,慢慢才能熟练的掌握!

微信二维码