css - 如何在 CSS 3 中选择兄弟元素?

标签 css css-selectors

我想选择 li.active 前后的元素兄弟。

HTML:

<ul class="inline avancement">
  <li>Réception des réponses</li>
  <li class="active">Achat</li>
  <li>Evaluation</li>
</ul>

CSS:

ul.avancement li{

padding-right:20px;
padding-left:10px;
margin-left:-4px;
height:37px;
line-height:37px;
}
 li.active ~ li{
    background:url(../img/delimiter_step_left.png) right top no-repeat;
    background-color:#ff0000;
}
 li.active + li{
    background:url(../img/delimiter_step_left.png) right top no-repeat;
    background-color:#999999;
}
 ul.avancement li{
    background:url(../img/delimiter_step.png) right top no-repeat;
    background-color:#999999;
    color:white;
}
ul.avancement li.active{
    background:url(../img/delimiter_step_actif.png) right top no-repeat;
    background-color:#ff0000;
}
ul.avancement li:last-child{
    background:none;
    background-color:#999999;
}

但它不起作用!

结果:

enter image description here

我在等待事件步骤之前的红色步骤!怎么了 ? 谢谢

最佳答案

您不能使用纯 CSS 解决方案选择上一个元素!阅读Selectors Level 3如果你不相信我的话。

然而,接下来的部分可以很容易地完成。

.active + li {
    color: red;
}

jsFiddle:http://jsfiddle.net/nkp8z/

尽管您的问题不是 100% 清楚 - 您是要选择所有未标记为 active 的元素,还是只选择事件元素之前和旁边的 2 个元素?

关于css - 如何在 CSS 3 中选择兄弟元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15390622/

相关文章:

css - 变量和函数的 DotLess (.less) master.less 文件

javascript - 滚动方向和滚动百分比为真时的类滚动 (jQuery)

html - CSS margin 恐怖; Margin 在父元素之外添加空间

javascript - 表格单元格中的 JS 工具提示位置

testing - TestCafe:指定选择器的问题:跨度抓取文本

javascript - Slick 轮播边缘的淡入淡出效果

html - 使用 css .first 创建列表项分隔符

css - 空格在 CSS 选择器中意味着什么?即.classA.classB 和.classA .classB 之间有什么区别?

html - CSS 技巧 *+html 有什么作用?

asp.net - css 结构伪类