css3中的三种选择器
1. 选择器:
CSS3新增了许多灵活查元素的⽅法,极⼤的提⾼了查元素的效率和精准度。CSS3选择器与jQuery中所提供的绝⼤部分选择器兼容
1. ⼀属性选择器:
a)    E[attribute] 表⽰存在attr属性即可;
div[class]
b)    E[attr=val] 表⽰属性值完全等于val;
div[class=mydemo]
c)      E[attr*=val] 表⽰的属性值⾥包含val字符并且在“任意”位置;
div[class*=mydemo]
d)    E[attr^=val] 表⽰的属性值⾥包含val字符并且在“开始”位置;
div[class^=mydemo]
e)    E[attr$=val] 表⽰的属性值⾥包含val字符并且在“结束”位置;
div[class$=demos]
2. ⼆伪类选择器-伪元素选择器:
a)    之前学习的:a:hover  a:link  a:active  a:visited
b)    以某元素相对于其⽗元素或兄弟元素的位置来获取⽆素的结构伪类
f)      E:first-child:查E这个元素的⽗元素的第⼀个⼦元素E
g)    E:last-child:最后⼀个⼦元素
h)    E:nth-child(n): 第n个⼦元素,计算⽅法是E元素的全部兄弟元素
i)      E:nth-last-child(n): 同E:nth-child(n) 相似,只是倒着计算
j)      E:nth-child(even): 所有的偶数
k)    E:nth-child(odd): 所有的奇数
l)      E:nth-of-type(n):指定类型
m)    E:empty 选中没有任何⼦节点的E元素,注意,空格也算⼦元素
n)    E:target 结合锚点进⾏使⽤,处于当前锚点的元素会被选中
o)    重点说明:n遵循线性变化,其取值0、1、2、3、4、... 但是当n<=0时,选取⽆效
p)    案例代码:
/*第⼀个li元素*/
li:first-child{
color: red;
}
/*最后⼀个元素*/
li:last-child{
color: green;
}
/*获取第10个元素*/
li:nth-child(10){
color: orange;
}
/*获取倒数第3个li元素*/
li:nth-last-child(3){
color: purple;
}
/
*获取索引顺序为6的倍数的li元素*/
li:nth-child(6n){
text-decoration: underline;
border: 1px solid red;
}
/*获取所有索引为偶数的li元素*/
li:nth-child(even){
border: 1px solid black;
}
/*获取前5个li元素*/
li:nth-child(-n+5){
background-color: #ddd;
}
3. /*获取除了第⼀个外的元素*/
li:nth-child(n+2){
}
c)      n可是多种形式:nth-child(2n)、nth-child(2n+1)、nth-child(-n+5)等
三伪元素选择器:cssclass属性
a)    重点:E::before、E::after
i.        是⼀个⾏内元素,需要转换成块:display:block  float:**  position:
ii.          必须添加content,哪怕不设置内容,也需要content:””
iii.          E:after、E:before 在旧版本⾥是伪类,在新版本⾥是伪元素,新版本下E:after、E:before会被⾃动识别为E::after、E::before,按伪元素来对待,这样做的⽬的是⽤来做兼容处理
iv.          E::before: 定义在⼀个元素的内容之前插⼊属性定义的内容与样式
v.        E::after: 定义在⼀个元素的内容之后插⼊属性定义的内容与样式
vi.          注意:
1. IE6、IE7与IE8(怪异模式Quirks mode)不⽀持此伪元素
2. CSS2中 E:before或者E:after,是属于伪类的,并且没有伪元素的概念,CSS3中提出伪元素的概念 E::before和
E::after,并且归属到了伪元素当中,伪类⾥就不再存在E:before或者  E:after伪类
b)    E::first-letter⽂本的第⼀个字母或字(不是词组)
c)      E::first-line ⽂本第⼀⾏
d)    E::selection 可改变选中⽂本的样式

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。