首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么.class:last-of-type不能像我预期的那样工作?

为什么.class:last-of-type不能像我预期的那样工作?
EN

Stack Overflow用户
提问于 2012-11-26 03:22:08
回答 4查看 53.7K关注 0票数 76

为什么这不起作用?http://jsfiddle.net/84C5W/1/

代码语言:javascript
复制
p{
    display: none;
}
p.visible:last-of-type {
    display: block;
}
代码语言:javascript
复制
<div>
  <p class="visible">This should be hidden</p>
  <p class="visible">This should be displayed</p>
  <p class="">This should be hidden</p>
</div>

事实上,我的<p>元素都是不可见的。如果我在选择器中删除对.visible的引用,它确实会显示<p>中的最后一个div,但这不是我想要的。

当然,我在任何时候都只能保留一个.visible,但这是用于reveal.js演示文稿的,并且我无法控制JavaScript。

如何使用类.visible选择div中的最后一个元素?我不想为此使用JavaScript。

EN

回答 4

Stack Overflow用户

发布于 2012-11-26 03:32:48

问题是:last-of-type只匹配元素选择器。在您的示例中,您将尝试匹配class选择器。这就是它不起作用的原因。

一个例子:http://dabblet.com/gist/4144885

票数 9
EN

Stack Overflow用户

发布于 2017-07-16 12:26:10

指向倒数第二个标签。

代码语言:javascript
复制
.visible:nth-last-of-type(2) {}
票数 8
EN

Stack Overflow用户

发布于 2017-05-31 18:12:21

为了便于将来参考,这将在CSS4级:https://www.w3.org/TR/selectors4/#the-nth-last-match-pseudo中介绍

在撰写本文时,对浏览器的支持还不存在:http://css4-selectors.com/selector/css4/structural-pseudo-class/

当这个准备好了,这应该是解决方案:

代码语言:javascript
复制
p {
  display : none;
}
p.visible:nth-last-match(0) {
  display : block;
}
代码语言:javascript
复制
<div>
  <p class="visible">This should be hidden</p>
  <p class="visible">This should be displayed</p>
  <p class="">This should be hidden</p>
</div>

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13554552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档