伪类和伪元素的区别及使用场景

1. 伪类和伪元素的区别

1.1 作用不同

       伪类是一种状态,可以看看做是选择器。比如鼠标经过 伪类 :hover , 比如 结构伪类 li:nth-child, 一个冒号。

       伪元素 是 元素, 简单来说,就是用css 模拟出来了一个盒子。

1.2 权重不相同

       伪类 是 10 (类、属性选择器 [type=submit])

       伪元素 是 1 (标签选择器 )

1.3 使用场景不同

       比如:鼠标经过盒子,盒子里面的样式会有变化,则需要使用 伪类

       如果想在盒子内部插入一个小盒子,此时可以使用伪元素

2. 伪元素最常见的使用场景

       做一些装饰类的小图标的时候,可以使用伪元素。 比如:

       注意: 不要迷恋伪元素,非常重要的信息,不要使用伪元素。比如 产品标题,产品介绍等。它主要用来装饰作用的。

3. 结构伪类 nth-child

      根据结构来选择标签,选儿子(亲儿子) 选择第几个,比如选择第4、8个元素等,这是结构伪类的使用场景。   

       但是,结构伪类nth-child使用,是有具体要求的, 如果非要按按照顺序来使用,必须是亲兄弟。比如:这个排序比较简单

<ul>
    <li>手机</li>
    <li>电脑</li>
    <li>榴莲</li>
</ul>

选择第3个li

ul li:nth-child(3) {
    color: red;
}

但是,如果是这样,则排序就不对:

<div class="box">
     <a href="#">链接</a>
     <p>我是段落</p>
     <p>我是段落</p>
     <p>我是段落</p>
     <p>我是段落</p>
</div>

       nth-child() 选孩子的时候,不一定是同类的。 依次来排号。

       进行选择的时候,先执行 nth-child(n) 先按照序号找到这个元素, 然后再看前面的标签选择器能否匹配。

.box p:nth-child(5) {
    color: red;
}

      拓展

       可以使用 另外一个选择器 li:nth-of-type() 选择的时候可以分类, 必须是同一类

       p:nth-of-type(1)

      执行顺序: 先看 p, 再执行 nth-of-type 从1开始排号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值