扫码关注官方订阅号
1 2 3 4 5
为什么这种写法( .track-s:last-child::after)没效果,但是 .track-e:last-child::after 就行
认证高级PHP讲师
css3中的伪类选择器 first 和last 指的都是 指定属于其父元素的最后一个子元素; .track-s:last-child::after时 指的是.track-s的父亲 ul 的最后一个子元素。而不是当前这个类的最后一个元素。
没有效果是因为没有找到对应的li,last-child和first-child这2个用法比较容易混淆
.track-s:last-child::after是这个意思“.track-s作为其父元素的最后一个子元素、它的伪元素...”,而既然.track-s并不是最后一个子元素,那这条规则是无法命中的。
.track-s:last-child::after
.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::afterlast-of-type 和 last-child是有区别的,last-of-type指的是其父元素的特定类型的最后一个子元素的每个元素,last-child指的是其父元素最后一个子元素的每个元素(所有的子集都包括了)
last-child将选择当前元素的最后一个元素, 而不是选择该类名的最后一个元素.
若想选择该类的最后, 只能通过js或者jQuery来完成. 或者手动给特定的元素添加特定的样式类.
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
css3中的伪类选择器 first 和last 指的都是 指定属于其父元素的最后一个子元素;
.track-s:last-child::after时 指的是.track-s的父亲 ul 的最后一个子元素。而不是当前这个类的最后一个元素。
没有效果是因为没有找到对应的li,last-child和first-child这2个用法比较容易混淆
.track-s:last-child::after是这个意思“.track-s作为其父元素的最后一个子元素、它的伪元素...”,而既然.track-s并不是最后一个子元素,那这条规则是无法命中的。如果选择的是最后一个li才会生效
我把题主的代码改了一下,看一下应该知道为什么了
可以考虑用多元素去方便选择器的选择
使用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来完成. 或者手动给特定的元素添加特定的样式类.