javascript - css的伪元素和last-child
PHP中文网
PHP中文网 2017-04-11 12:18:02
[JavaScript讨论组]



    
    
    


    
  • 1
  • 2
  • 3
  • 4
  • 5

为什么这种写法( .track-s:last-child::after)没效果,但是 .track-e:last-child::after 就行

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(6)
迷茫

css3中的伪类选择器 first 和last 指的都是 指定属于其父元素的最后一个子元素;
.track-s:last-child::after时 指的是.track-s的父亲 ul 的最后一个子元素。而不是当前这个类的最后一个元素。

PHP中文网

没有效果是因为没有找到对应的li,last-child和first-child这2个用法比较容易混淆

巴扎黑

.track-s:last-child::after是这个意思“.track-s作为其父元素的最后一个子元素、它的伪元素...”,而既然.track-s并不是最后一个子元素,那这条规则是无法命中的。

大家讲道理

如果选择的是最后一个li才会生效

我把题主的代码改了一下,看一下应该知道为什么了

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        /* 有效果 */
       .track-s:last-child::after{
            content:"bbx";
            color: red;
       } 
       /* 没有效果 */
       .track-e:last-child::after{
            content:"aa";
            color: red;
       } 
    </style>
</head>
<body>
    <ul>
        <li class="track track-s">1</li>
        <li class="track track-s">2</li>
        <li class="track track-e">4</li>
        <li class="track track-e">5</li>
        <li class="track track-s">3</li>
    </ul>
</body>
</html>

可以考虑用多元素去方便选择器的选择

<!-- test4.html -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        /* 有效果 */
       .track-s:nth-last-of-type(1)::after{
            content:"bb";
            color: red;
       } 
       /* 有效果 */
       .track-e:last-of-type::after{
            content:"aa";
            color: red;
       } 
    </style>
</head>
<body>
    <ul>
        <li class="track track-s">1</li>
        <li class="track track-s">2</li>
        <li class="track track-s">3</li>
        <p class="track track-e">4</p>
        <p class="track track-e">5</p>
    </ul>
</body>
</html>
怪我咯

使用last-of-type,可以取到最后一个.track-s
.track-s:last-of-type::after
last-of-type 和 last-child是有区别的,last-of-type指的是其父元素的特定类型的最后一个子元素的每个元素,last-child指的是其父元素最后一个子元素的每个元素(所有的子集都包括了)

高洛峰

last-child将选择当前元素的最后一个元素, 而不是选择该类名的最后一个元素.

若想选择该类的最后, 只能通过js或者jQuery来完成. 或者手动给特定的元素添加特定的样式类.

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号