CSS:定位 sibling 但位置未知

标签 css

好吧,虽然我不完全确定这是否可行,但我一直试图只用 CSS 解决这个问题,所以在我求助于 JavaScript 之前,我需要在这里问一下。

我需要用类 column-title 定位 sibling 第一个 <li>在以下列表中:

<ul>
    <li class="column-title">Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    <li class="column-title">Item 4</li>
    <li>Item 5</li>
</ul>

考虑 sibling 可以处于任何位置,例如:

(第五名)

<ul>
    <li class="column-title">Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    <li>Item 4</li>
    <li class="column-title">Item 5</li>
</ul>

(第三点)

<ul>
    <li class="column-title">Item 1</li>
    <li>Item 2</li>
    <li class="column-title">Item 3</li>
    <li>Item 4</li>
    <li>Item 5</li>
</ul>

我认为仅使用 CSS 是不可能的,对吧?

谢谢。

编辑--

天哪,我找到了解决方案:

使用兄弟组合器:~

.column-title ~ .column-title { background:#ddd; }

这样,该属性将应用于第一个 .column-title 的任何同级李.

附言。我在 crowjonah 发布他的答案的同时找到了答案。无论如何,我选择了他的答案作为选择的答案

最佳答案

你可以试试半支持的"general sibling combinator" , ~。像这样的东西:

li.column-title ~ li.column-title {color: red;}

这是 a basic fiddle显示它正在完成。

然后您可能需要像 this 这样的垫片对于 IE7 支持,如果您愿意的话。

看到您的更新,您应该知道为了获得最佳结果,如果您从兄弟规则中排除 li.column-title 的第一个实例,您应该指定 :first-child:

ul li.column-title:first-child {color: blue;}
ul li.column-title:first-child ~ li.column-title {color: red;}​

关于CSS:定位 sibling 但位置未知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13406555/

相关文章:

javascript - 如何在 d3 或 native javascript API 中获取元素的 css 位置

html - 带网格的联系页面?

html - child 相对于滚动祖 parent 的绝对位置

html - 垂直居中图像旁边的导航菜单(CSS)

html - 如何将一个多行的垂直列表导出到水平面上有标题的excel表中?

javascript - jQuery ScrollTop .. ."disable"当击中屏幕底部时

jquery - 溢出隐藏文本被切断

html - 我如何使用 Materialise 在垂直 FAB 中拥有水平 FAB?

javascript - 仅当用户在 200px 和 300px 之间滚动时添加一个类

css - HTML5 视频缩放