【问题标题】:Styling child element with multiple styles on child and parent在子元素和父元素上设置具有多种样式的子元素
【发布时间】:2022-01-31 07:27:22
【问题描述】:

我希望在一个具有多个类的 div 中设置一个元素的样式,并且该元素也有多个类:

<div class="breadcrumbsHolder dark-mode" id="breadcrumbHolderID">
  <ol class="breadcrumb">
    <li class="breadcrumb-item">Other</li>
    <li class="breadcrumb-item active" id="activeBreadcrumb">Active</li>
  </ol>
</div>

这似乎不适用于“活动”文本:

.breadcrumbsHolder.dark-mode {
  color: orange;
}
.breadcrumbsHolder.dark-mode > .breadcrumb-item.active {
  color: white;
}

这也不行:

.breadcrumbsHolder.dark-mode {
  color: orange;
}
.breadcrumbsHolder.dark-mode > #activeBreadcrumb {
  color: white;
}

也不:

.breadcrumbsHolder.dark-mode {
  color: orange;
}
#breadcrumbHolderID > #activeBreadcrumb {
  color: white;
}

我做错了什么?

需要注意的一点是 .breadcrumbsHolder.dark-mode 有效并适用于外部父 div

【问题讨论】:

    标签: html css


    【解决方案1】:

    您不能使用尖括号&gt;,因为这只会选择元素的直接子元素,这里不是这种情况 - ol 元素将是直接子元素。

    以下是一些您可以使用的紧凑型选择器:

    #activeBreadcrumb
    li.active
    .breadcrumb-item.active
    

    如果要根据外部元素选择活动项:

    .breadcrumbsHolder.dark-mode .breadcrumb-item.active
    

    其他方式,供记录:

    .breadcrumbsHolder .active
    .breadcrumbsHolder li.active
    .breadcrumb .active
    ol li.active
    .breadcrumbsHolder > .breadcrumb > .active
    

    另见:How is the "greater than" or ">" character used in CSS?

    【讨论】:

    • 谢谢你,省略 > 符号似乎是最简单的选择
    猜你喜欢
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    • 2011-12-28
    • 1970-01-01
    • 2014-02-01
    • 1970-01-01
    • 2011-05-15
    相关资源
    最近更新 更多