html - CSS child 后裔

标签 html css css-selectors

我刚刚在 Stack 上看到这个问题得到了正确的回答。

问题是如何选择每个 .class1 元素后的前两个 li。

<ul>
  <li>Something</li>
  <li class="class1">Important</li>
  <li>I want this</li>
  <li>I want this</li>
  <li class="class1">Important</li>
  <li>I want this</li>
  <li>I want this</li>
  <li>Something</li>
  <li>Something</li>
</ul>

这是(伟大的)正确且被接受的答案:

.class1 + li will select the first subsequent sibling.
.class1 + * + li will select the second.

为了保持低特异性,您还可以使用:

.class1 + *,
.class1 + * + * {...}

现在,我正在玩这个,想知道为什么这不起作用:

li.class1 li:nth-child(-n+2) {color:red;}

但以这种方式工作:

li:nth-child(-n+2) {color:red;}

最佳答案

因为当你使用

li.class1 li:nth-child(-n+2) {color:red;} 

你正在捕获那个 li 元素并且你正在寻找他的子元素但是这里的 li 元素没有任何子元素所以它不会工作。如果 ul 有类“class1”,它可能会像你想要的那样工作。

关于html - CSS child 后裔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38981562/

相关文章:

html - 如何使用 CSS 网格布局在行表上制作悬停状态

css - 在 CSS 中创建类 3d block 的好方法是什么?

javascript - 带有所有图标的 iron-iconset svg 文件 Polymer 2.0

css - 如何让HTML5标记元素在IE中正常显示

html - 从主页删除 Logo - Wordpress

html - CSS 适用于所有内部 div 但跳过第一个 child

javascript - 如何在加载时获取元素宽度?

HTML 按钮 "Push"效果

javascript - 使用 BootstrapDialog.show 时禁用外部点击

html - 尝试在每种类型的浏览器中将页面居中——在大多数情况下都有效,但在其他浏览器中无效