【问题标题】:Sass - selecting a header with specific role but not apply styling if has certain classSass - 选择具有特定角色的标题,但如果具有特定类则不应用样式
【发布时间】:2016-10-14 02:06:51
【问题描述】:

问题

如何嵌套 SCSS 以将样式应用于 <header>,仅当它具有 role="banner" 时,但如果标头具有 page-frontpage 类,则不得应用。然后我会将特定页面的样式嵌套在里面。

背景

我正在添加到别人的代码中,所以不允许覆盖第一个编写的样式。我认为如果在其他地方使用标题可能会出现问题,所以如果它具有“横幅”的作用,我想定位样式。我正在为主页编写样式,并且我的页面有不同的布局,所以我希望以前的样式不应用于我的页面。

我知道这不是最好的方法,但我必须在这个范围内工作。

代码

这里是my demo on codepen

HTML

根据正在查看的页面将类传递到标题

<header role="banner" class="<?=$varCurrentPage?>">

SCSS

原始代码

header{
    text-align: center;
    background-color: #444;
    color: #fff;
    min-height:80vh;
    background-size:cover;
    position:relative;
}

目前修改

header[role=banner] {

【问题讨论】:

    标签: html css sass


    【解决方案1】:

    给你:

    header[role="banner"]:not(.page-frontpage) {
        text-align: center;
        background-color: #444;
        color: #fff;
        min-height:10vh;
        background-size:cover;
        border: red 1px dotted;
        position:relative;
    }
    

    【讨论】:

    • 好的,所以我坚持的部分是最好(“更清洁”)以某种方式将.page-frontpage 的样式嵌套在其中,或者我是否应该将样式写为@ 987654323@
    • 如果我是对的,您希望为 header[role="banner"] 设置某些样式,然后为不在首页的相同元素设置一些其他样式?
    • 在这种情况下,您可以通过在前面添加 & 来嵌套 :not(.page-frontpage):&amp;:not(.page-frontpage)。但我不认为嵌套是特别干净的事情。毕竟css输出是一样的。
    • 我同意。我最终只是限制了他们的风格,如上所示。然后又写了一套规则。现在工作正常。感谢您的帮助,谢谢。
    猜你喜欢
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多