【问题标题】:Sass nesting, mark for the first parent elementSass嵌套,标记为第一个父元素
【发布时间】:2019-06-20 14:37:18
【问题描述】:

我的页面上有一个根元素div.container,里面有一个div.block.scarlet,里面有红色作为文本。 但我们也有bodydiv.container element 的父级。当body.landing 类时,我需要制作粉红色 而不是红色。 我不明白如何正确编写它。请提供语法帮助!

/* how I do it now */
.container {
    .block {
        &.scarlet {
            color: red;
        }
    }
}
body.landing .container {
    .block {
        &.scarlet {
            color: pink;
        }
    }
}

太多额外的复制粘贴代码!可以写成一行吗?也许像 sass & 这样的诡计。我想要什么:

.container {
    .block {
        &.scarlet {
            color: red;
            @if(body.landing || container.landing) { color: pink }
        }
    }
}

这是一个简短的规则,如果根嵌套元素发生变化,我会重新着色我的文本。

【问题讨论】:

    标签: css sass


    【解决方案1】:

    您需要使用parent selector reference 从当前上下文构造完整的选择器:

    .container {
        .block {
            &.scarlet {
                color: red;
                body.landing & { 
                    color: pink; 
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-22
      • 1970-01-01
      • 2015-01-16
      • 1970-01-01
      • 2013-12-24
      • 2014-11-06
      • 2021-04-21
      • 2022-11-30
      相关资源
      最近更新 更多