html - 为什么颜色样式在这种情况下不起作用?

标签 html css less

我有以下 html 标记:

<div class="header-menu">
    <span class="header-title noselect">
        <i class="fa fa-bars"></i>
        <a href="/" class="header-title-value">
            {{ headerVm.menu.current.title }}
        </a>            
    </span>
</div>

*.less 文件中的规则:

.header-menu {
    .header-title {
        color: red;
        a {
            font-size: 2em;
            font-family: 'Roboto', sans-serif;
            font-weight: 300;
        }
    }
}

翻译成css:

.header-menu .header-title{
    cursor:pointer;
    color:#f00
}
.header-menu .header-title a {
    font-size:2em;
    font-family:'Roboto',sans-serif;
    font-weight:300
}

在这种情况下,header-titlecolor 属性不会影响 a 标签,但是如果我将它放在 中>a 规则它起作用。我还尝试在 color 属性上设置 !improtant,但也没有用。另一个有趣的时刻是,如果我从 a 规则中移动字体属性并将它们放入 .header-menu .header-title 这将适用于 a 标签,但不是 color 属性。

在 Chrome 检查器中,我看到在我的 a 规则从 Bootstrap 开始,而不是从 header-title 开始。实际上我对如何解决这个问题并不感兴趣,但它为什么会以这种方式工作以及适当的修复/最佳实践建议 =)

最佳答案

默认 <a>标记不会从其父元素继承颜色。试试这个来强制继承:

.header-menu {
    .header-title {
        color: red;
        a {
            color: inherit;
            font-size: 2em;
            font-family: 'Roboto', sans-serif;
            font-weight: 300;
        }
    }
}

关于html - 为什么颜色样式在这种情况下不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28087489/

相关文章:

javascript - bootstrap panel-left 我无法将它居中

html - Bootstrap : Stretching navbar-toggle button in media query

python - 如何在 Django 中访问单选按钮选择的值

javascript - Google 条形图将 x 轴标签移动到顶部

html - drupal 自动宽度中的评论

javascript - 用于打印的样式动态内容

html - :checked css not working

css - LESS - 通过遍历两个变量创建 ID

css - 划分导航的最佳方式?

html - 获取 Angular js 中返回的 JSON 对象的值