CSS 选择器匹配嵌套列表中的单个列表元素
CSS selector to match single list elements in a nested list
我有嵌套列表,类似于下面的列表:
<ol>
<li>Item 1
<ol>
<li>Item 2</li>
<li>Item 3
<ol>
<li>Item 4
<ol>
<li>Item 5</li>
</ol>
</li>
<li>Item 6
<ol>
<li>Item 7</li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
</ol>
项目 1、5 和 7 都是单独的 <li>
元素,即它们是该特定父级的层次结构级别中的唯一元素。我想匹配它们并用它们交换子弹元素。 (我也愿意接受 JavaScript 解决方案,但如果可能的话,我更喜欢纯 CSS。)
这是一个基于 jquery 的选择器,如果它有用的话:
$('li').filter(function() { return $(this).siblings().length == 0 })
我认为你可以使用 :only-child
伪 class.
参见参考文献:http://www.w3.org/TR/css3-selectors/#only-child-pseudo
这个技巧需要两条 CSS 规则。
ol li:only-child
规则可能会因继承而导致问题。
使用li:only-child *
取消第一条规则的任何效果。
在这个例子中似乎工作正常。
ol li:only-child {
font-weight: bold;
}
li:only-child * {
font-weight: normal;
}
<ol>
<li>Item 1
<ol>
<li>Item 2</li>
<li>Item 3
<ol>
<li>Item 4
<ol>
<li>Item 5</li>
</ol>
</li>
<li>Item 6
<ol>
<li>Item 7</li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
</ol>
我有嵌套列表,类似于下面的列表:
<ol>
<li>Item 1
<ol>
<li>Item 2</li>
<li>Item 3
<ol>
<li>Item 4
<ol>
<li>Item 5</li>
</ol>
</li>
<li>Item 6
<ol>
<li>Item 7</li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
</ol>
项目 1、5 和 7 都是单独的 <li>
元素,即它们是该特定父级的层次结构级别中的唯一元素。我想匹配它们并用它们交换子弹元素。 (我也愿意接受 JavaScript 解决方案,但如果可能的话,我更喜欢纯 CSS。)
这是一个基于 jquery 的选择器,如果它有用的话:
$('li').filter(function() { return $(this).siblings().length == 0 })
我认为你可以使用 :only-child
伪 class.
参见参考文献:http://www.w3.org/TR/css3-selectors/#only-child-pseudo
这个技巧需要两条 CSS 规则。
ol li:only-child
规则可能会因继承而导致问题。
使用li:only-child *
取消第一条规则的任何效果。
在这个例子中似乎工作正常。
ol li:only-child {
font-weight: bold;
}
li:only-child * {
font-weight: normal;
}
<ol>
<li>Item 1
<ol>
<li>Item 2</li>
<li>Item 3
<ol>
<li>Item 4
<ol>
<li>Item 5</li>
</ol>
</li>
<li>Item 6
<ol>
<li>Item 7</li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
</ol>