【CSS】伪类选择器

本文详细解读了CSS伪类选择器如:`:first-child`、`:last-child`、`:nth-child()`、`:first-of-type`、`:last-of-type`和`:nth-of-type()`,以及`:not()`的用法,教你如何精确控制页面元素的样式应用。理解并利用这些伪类,能让你的CSS更加灵活和高效。
摘要由CSDN通过智能技术生成

伪类选择器

伪类(不存在的类,特殊的类)
伪类用来描述一个元素的特殊状态。
比如:第一个子元素、被点击的元素、鼠标移入的元素等。
伪类一般情况下都是使用:开头。

: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标签都变红。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值