javascript - CSS如何取最后一个class为a的元素?
迷茫
迷茫 2017-04-10 18:05:29
[JavaScript讨论组]

一般取最后一个元素使用:last-child,如果是取最后一个class为a的元素该怎么办?能使用css完成吗?

.primary-tag:first-child {
    color:red;
}

.primary-tag:last-child {
    color:blue;
}

好尴尬,:first有用,:last没用

<li class="primary-tag"><i class="iconfont color1">&#xe67f;</i>创意设计<i class="iconfont icon-xiala"></i></li>
<li class="primary-tag"><i class="iconfont color2">&#xe67f;</i>技术开发<i class="iconfont icon-xiala"></i></li>
<li class="primary-tag"><i class="iconfont color3">&#xe67f;</i>极客数码<i class="iconfont icon-xiala"></i></li>
<li class="primary-tag"><i class="iconfont color4">&#xe67f;</i>文艺生活<i class="iconfont icon-xiala"></i></li>
<li class="primary-tag"><i class="iconfont color5">&#xe67f;</i>资源下载<i class="iconfont icon-xiala"></i></li>


迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(7)
天蓬老师

:first-child 是匹配父元素的第一个子元素,:last-child 是匹配父元素的最后一个子元素(这里要求这个子元素必须是父元素里的最后一个子元素),如果是最后一个class为a的元素,我觉得可能用 .a:nth-last-of-type(1) 更合适一点吧。

迷茫

题主的要求是“取最后一个 class 为 a 的元素”,而li.a:last-child这个选择器的意思是“取 class 为 a 的,且该元素是其父元素中最后一个子元素的那个元素”,两者是有区别的。
也就是说:如果最后一个子元素有 a 这个类,选择器生效,而如果没有 a 类,选择器失效。

例如:

<ul>
    <li>content</li>
    <li class="a">content</li>
</ul>

这种情况选择器li.a:last-child生效,而:

<ul>
    <li class="a">content</li>
    <li>content</li>
</ul>

这种情况选择器失效,不会选中任何元素。

因此题主的需求“取最后一个 class 为 a 的元素”,仅通过 CSS 是无法实现的。

PHP中文网

$('.a') 取出所有class为a的标签,再取出的数组里面取最后一个

迷茫

$('.a:last-child')

巴扎黑

没太懂,不一样可以用last-child吗?

<style>
  .a:last-child {
    color: blue;
  }
</style>
<body>
    <p>123456</p>
    <p>123456</p>
    <p>123456</p>
    <p class="a">123456</p>
    <p>123456</p>
    <p class="a">123456</p>
</body>
PHP中文网

选择器是没有问题的,你是有其他的东西干扰了

https://jsfiddle.net/gfje2tay/1/

高洛峰

没问题啊,要加上边框样式,才能看到结果
CSS修改为:

.primary-tag {
    border-left:1px solid red;
    border-right:1px solid red;
    border-top:1px solid red;
}

.primary-tag:first-child {
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
}

.primary-tag:last-child {
    border-bottom:1px solid red;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
}

HTML:

<ul>
    <li class="primary-tag">
        <i class="iconfont color1">&#xe67f;</i>创意设计
        <i class="iconfont icon-xiala">

        </i>
    </li>
    <li class="primary-tag">
        <i class="iconfont color2">&#xe67f;</i>技术开发
        <i class="iconfont icon-xiala"></i>
    </li>
    <li class="primary-tag">
        <i class="iconfont color3">&#xe67f;</i>极客数码
        <i class="iconfont icon-xiala"></i>
    </li>
    <li class="primary-tag">
        <i class="iconfont color4">&#xe67f;</i>文艺生活
        <i class="iconfont icon-xiala"></i>
    </li>
    <li class="primary-tag">
        <i class="iconfont color5">&#xe67f;</i>资源下载
        <i class="iconfont icon-xiala"></i>
    </li>

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

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