CSS BETWEEN 选择器?

标签 css css-selectors

我了解“相邻选择器”+

我想做的是根据元素两侧 div 上的类更改元素的样式。例如:

<div class="positive">...</div>
<div class="divider"></div>
<div class="negative">...</div>

'positive' 和 'negative' 类有不同的背景,分配可能会根据用户交互等而改变。我希望 div.divider 根据其两侧的 div 类选择背景。我们有从正到负、负到正、正到正、负到负等“过渡”的分频器。还有更多状态,这些只是示例。

想法是,当 JS 更改 div.divider 两侧的 div 类时,我希望更改分隔线的样式(主要是背景)。

这可能吗?

最佳答案

CSS 没有,现在也没有(我不认为)有一个 BETWEEN 选择器。浏览器将网页作为流处理,而 between 选择器需要引用先前读取的元素,从而减慢渲染时间。 This页面有关于令人垂涎的 parent 选择器的解释,这在某种程度上也适用于 between 选择器。

仅将中间 div 用作样式元素在语义上是不合适的,以下可能是更好的选择。

我认为您最好的选择是使用 ADJACENT 选择器更改 positivenegative 的上半部分以响应其邻居。使用 CSS3:

.positive + .negative { border-top-image:url('NEGATIVE_BELOW_POSTIIVE'); }
.negative + .positive { border-top-image:url('POSITIVE_BELOW_NEGATIVE'); }

您还可以按照以下方式在 CSS3 中使用多个背景图片:

.positive + .negative { background-image:url('NEGATIVE_BELOW_POSTIIVE');
                        background-position:center-top;
                      }
.negative + .positive { background-image:url('POSITIVE_BELOW_NEGATIVE');
                        background-position:center-top;
                      }

在 CSS2 和更早版本中,您可能需要预先构建所有背景图像并使用上述策略更改它们。

.positive, .negative { background-image:url('DEFAULT'); }
.positive + .negative { background-image:url('NEGATIVE_BELOW_POSTIIVE'); }
.negative + .positive { background-image:url('POSITIVE_BELOW_NEGATIVE'); }

关于CSS BETWEEN 选择器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6457187/

相关文章:

css - 在列表中选择第一个类型的 div,所有类型的 div 都具有与其关联的状态的数据属性

html - 图像不会与 div 的顶部对齐

javascript - 如何使用 CsQuery 删除 html 内容中的所有脚本标签

javascript - 如何不将重置的 css 文件继承到特定的 div?

html - 星级评分系统第二个选项用 CSS 改变了第一个

jquery 选择第 n 个子级跳过隐藏元素

html - 选择 parent 的 sibling

c# - OPC.测试.SmokeTest (TestFixtureSetUp) : SetUp : OpenQA. Selenium.InvalidSelectorException

css - 如何使侧边菜单底部、按钮和内容响应?

jquery - 背景图像上方的背景颜色