html - 如何选择没有特定类的最后一个元素?

标签 html css css-selectors

<分区>

如何选择没有 .hidden 类的最后一个 li

我有这样的 HTML 和 CSS:

ul li:last-child:not(:first-child):not(.hidden) button {
  background-color: red;
}
    <ul>
      <li>
        <button>1</button>
      </li>
      <li>
        <button>2</button>
      </li>
      <li class="hidden">
        <button>3</button>
      </li>
    </ul>

最佳答案

目前,没有 CSS 方法能够找到一个元素,然后再找到另一个特定元素。

可能很快就会出现 CSS 关系伪类 :has() ,它将使您想要的成为可能。目前在 CSS Selectors Level 4 Draft 中并且看起来不太可能很快在任何浏览器上推出。

下面是一个演示,但在 Selectors 4 Draft 至少处于工作草案之前不要指望它能工作。

关注CanIUse看看它何时变得可用。

ul li:has(+ .hidden:last-child),
ul li:last-child:not(.hidden) {
  background: red;
}
<ul>
  <li>
    <button>1</button>
  </li>
  <li>
    <button>2</button>
  </li>
  <li class="hidden">
    <button>3</button>
  </li>
</ul>


:has() 虽然在 jQuery 中可用,所以这里有一个 jQuery 替代方案

Read more here from the Official jQuery Docs

$('ul li:has(+ .hidden:last-child), ul li:not(.hidden):last-child').css('background', 'red');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li>
    <button>1</button>
  </li>
  <li>
    <button>2</button>
  </li>
  <li class="hidden">
    <button>3</button>
  </li>
</ul>

关于html - 如何选择没有特定类的最后一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38917530/

相关文章:

javascript - HTML onclick 函数不通过 PHP echo 调用

javascript - 一些具有隐藏值的数据列表标签

javascript - 单击相应的 "item"时编辑 "btn"的 css

css - 从没有样式的 css 文件中删除 css 选择器

javascript - 在 GMAIL 中预填充大量正文会导致请求 URI 太长错误

javascript - CSS 动画恢复到原始状态

css - 1360*768屏幕的媒体查询怎么写?

css - 是否有 CSS 父级选择器?

css - 是否有 "previous sibling"选择器?

javascript - 使用 jQuery 操作 HTML 表格