【问题标题】:css specificity for an active tag in a menu菜单中活动标签的 css 特异性
【发布时间】:2013-10-17 05:05:06
【问题描述】:

我有以下 HTML,它是由插件输出的,所以我无法更改某些输出:

    <div id="submenu">
        <h2>text</h2>
<!-- can't change start -->
       <ul class="nav secondary">
            <li class="active"><a href="#">Contact Info</a></li>
            <li><a href="#">About You</a></li>
        </ul>
<!--cant' change end-->
    </div>

具体来说,我无法控制获得输出的 UL 类名称(导航辅助)、li 标签(活动类是问题)和 a 标签。

问题是我不知道如何让 li.active 更改活动链接的 a 标签的字体颜色。这是我的CSS:

#submenu {
    float: left;
    width: 100%;
    height: 53px;
     margin: 0px 0px 12px 0px;
     padding: 5px 0px 2px 0px;
     border-bottom: 1px solid #eeeeee;
}
#submenu h2 {
}
#submenu ul {
    margin: 0;
    padding: 0;
    float: right;
}
#submenu li {
    list-style: none;
    float: left;
    padding: 12px 0px 0px 28px;
    display: inline;
}
#submenu li a {
    color: #333333;
}
#submenu a:hover {
    color: #A0A0A0;
}

#submenu a {
    padding:0px;
}
#submenu .active {
    color:#CC0000; /**#A0A0A0; */
}
#submenu .nav > li > a:hover {
    padding:0px;
    background:none;
}

这种特殊性让我感到困惑。如何让 li.active 覆盖链接的字体颜色?

【问题讨论】:

    标签: html css


    【解决方案1】:

    这与特异性无关。

    #submenu li a 匹配 a 元素,但 #submenu .active 匹配 li 元素。

    没有任何东西将a 设置为color: inherit,因此它永远不会从li 元素中获取颜色。

    更改选择器以匹配a 而不是li

    #submenu li.active a
    

    【讨论】:

      【解决方案2】:

      如果您将其更改为:

      li.active a { color: #CC0000; }
      

      它应该覆盖标准的a 颜色

      有关 CSS 特殊性的更多信息,请查看以下内容:

      http://www.standardista.com/css3/css-specificity/

      我打印出那个愚蠢的图形并挂在我的隔间墙上。很有帮助。

      【讨论】:

        【解决方案3】:

        您是否尝试过确保在插件生成或使用 css 之后加载您的 css?

        【讨论】:

          猜你喜欢
          • 2017-02-01
          • 1970-01-01
          • 2013-01-31
          • 2013-03-25
          • 2017-06-07
          • 2021-03-31
          • 1970-01-01
          • 2011-12-29
          • 2011-10-24
          相关资源
          最近更新 更多