伪类选择器
伪类选择器
伪类(不存在的类,特殊的类)
伪类用来描述一个元素的特殊状态。
比如:第一个子元素、被点击的元素、鼠标移入的元素等。
伪类一般情况下都是使用:开头。
:xx-child
:first-child
第一个子元素。
ul > li:first-child{
color: red;
}
<ul>
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
</ul>
此时是第一个li标签变红。
:last-child
最后一个子元素。
ul > li:last-child{
color: red;
}
<ul>
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
</ul>
此时是最后一个li标签变红。
:nth-child()
第n个子元素。
特殊值:
n,选中所有元素,n代表第n个,n的范围是0到正无穷。
2n或even 表示选中偶数位的元素。
2n+1或odd 表示选中奇数位的元素。
ul > li:nth-child(3){
color: red;
}
<ul>
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
</ul>
此时是第3个li标签变红。
说明
以上这些伪类都是根据所有的子元素进行排序,如
ul > li:first-child{
color: red;
}
<ul>
<span>aaa</span>
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
</ul>
此时因为ul中第一个元素不是li标签,所以span和li标签都不会变成红色。
:xx-of-type
:first-of-type
第一个子元素。
ul > li:first-of-type{
color: red;
}
<ul>
<span>aaa</span>
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
</ul>
此时是第一个li标签变红。
:last-of-type
最后一个子元素。
ul > li:last-of-type{
color: red;
}
<ul>
<span>aaa</span>
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
</ul>
此时是最后一个li标签变红。
:nth-of-type()
第n个子元素。
特殊值:
n,选中所有元素,n代表第n个,n的范围是0到正无穷。
2n或even 表示选中偶数位的元素。
2n+1或odd 表示选中奇数位的元素。
ul > li:nth-of-type(3){
color: red;
}
<ul>
<span>aaa</span>
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
</ul>
此时是第3个li标签变红。
说明
这几个伪类的功能和上述的类似,不同点:
它们是在同类元素中进行排序。如;
ul > li:first-of-type{
color: red;
}
<ul>
<span>aaa</span>
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
</ul>
则此时第一个li标签内容会变红。
:not()
否定伪类。
将符合条件的元素从选择器中去除。如:
ul > li:not(:nth-child(2)){
color: red;
}
<ul>
<span>aaa</span>
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
</ul>
则此时除了aaa以外的所有li标签都变红。而
ul > li:not(:nth-of-type(2)){
color: red;
}
<ul>
<span>aaa</span>
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
</ul>
则此时除了bbb以外的所有li标签都变红。