css - 有没有办法通过父属性突出显示所选元素?

标签 css

经典的列表元素选择方式是这样的:

<ul>
    <li>elem 1</li>
    <li class="selected">elem 2</li>
    <li>elem 3</li>
</ul>

有没有办法像这样仅使用 CSS 选择元素:

<ul data-id="2">
    <li data-id="1">elem 1</li>
    <li data-id="2">elem 2</li>
    <li data-id="3">elem 3</li>
</ul>

我可以制作一个 CSS 选择器,它将应用于具有与父对象匹配的某些属性的子对象吗?

让我们想象一下,我们以前不知道元素的 ID,因为如果我们知道并且有几个,我们就可以编写这样的 CSS 规则:

ul[data-id=1] li[data-id=1],
ul[data-id=2] li[data-id=2],
ul[data-id=3] li[data-id=3] {
    font-weight: bold;
}

这应该行得通

但我需要一个针对未知 ID 的解决方案。

最佳答案

不,您不能通过 css 实现它。当 SASS 来救援时。 了解SASS这里..

@for $i from 1 through 3
ul[data-id=#{$i}] li[data-id=#{$i}]{
  font-weight: bold
}

关于css - 有没有办法通过父属性突出显示所选元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26894163/

相关文章:

html - 如何在div上垂直居中放置链接按钮?

javascript - 我需要强制 IE 6、7 和 8 等到 CSS 加载后再渲染页面

css - 如何将 View 放在标题顶部,其中一部分位于标题后面的边界之外?

html - 有条件显示的 Angular Material 2 Md-ToolTip

html - 100% height div wrapper 展开 100% height children

jquery - 查找一组元素中是否有任何成员具有类

html - CSS - 图像没有出现在 div 的背景上

html - 让较小的图像出现在较大的图像上

html - 如何使用百分比使 DIV 的文本垂直和水平居中?

javascript - 链接禁用属性在 Microsoft EDGE 浏览器中不起作用