css - 通过子项设置父级样式

标签 css css-selectors

<分区>

假设我有以下 <ul> :

<ul>
    <li>Child</li>
    <li><span class="active">Child</span></li>
    <li>Child</li>
</ul>

我可以更改 <li> 的样式吗?通过 active <span>

例如:

.active:parent(li) {
    background-color: red;
}

我已经能够使用 jQuery 实现这一点,但它会在屏幕上闪烁一瞬间(等待 DOM 加载),我想避免这种情况。

最佳答案

您可以使用 has() :

li:has(> .active) {
    background-color: red;
}

在 CSS 中无法做到这一点。

最好的办法是做类似的事情:

<ul class="has-active">
    <li>Child</li>
    <li><span class="active">Child</span></li>
    <li>Child</li>
</ul>

和风格

ul.has-active  {
    ...
}

如果您正在寻找可以做父选择器的东西,那么看看像 xpath 这样的东西.

关于css - 通过子项设置父级样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48676386/

相关文章:

javascript - 将 CSS3 过渡添加到 jQuery Animate 脚本

html - 如何通过 css 或 css3 在一个 div 标签上做两个边框?

javascript - 我如何通过循环获取元素,html?

javascript - Angular 获取特定 ID 内的标签内容

jquery - 悬停第 nth-child(1) 时更改其他 child

javascript - 具有不同尺寸的响应式图像网格

在 Chrome 和 Firefox 中选择框的 Css

javascript - 仅当元素前面没有文本节点时如何匹配元素的第一个子元素?

css - 这被认为是上下文选择器吗?

html - 将 FB Like 按钮固定在图像顶部的位置(响应式)