Sass .scss:嵌套和多个类?

Sass .scss:嵌套和多个类?

我正在使用Sass(.scss)来完成我当前的项目。

以下示例:

HTML

<div class="container desc">
    <div class="hello">
        Hello World
    </div></div>

SCSS

.container {
    background:red;
    color:white;

    .hello {
        padding-left:50px;
    }}

这非常有效。

我可以在使用嵌套样式时处理多个类。

在上面的示例中,我正在谈论这个:

CSS

.container.desc {
    background:blue;}

在这种情况下,所有div.container通常会red,但div.container.desc会是蓝色的。

我如何container用Sass将其嵌入其中?


绝地无双
浏览 4565回答 2
2回答

Qyouu

您可以使用父选择器引用&nbsp;&,它将在编译后由父选择器替换:对于你的例子:.container&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;background:red; &nbsp;&nbsp;&nbsp;&nbsp;&.desc{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;background:blue; &nbsp;&nbsp;&nbsp;&nbsp;}}/*&nbsp;compiles&nbsp;to:&nbsp;*/.container&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;background:&nbsp;red;}.container.desc&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;background:&nbsp;blue;}该&会彻底解决,因此,如果你的父母选择嵌套本身,嵌套将更换前解决&。这种表示法最常用于编写伪元素和类:.element{ &nbsp;&nbsp;&nbsp;&nbsp;&:hover{&nbsp;...&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&:nth-child(1){&nbsp;...&nbsp;}}但是,您可以放置&几乎任何您喜欢的位置*,因此也可以使用以下内容:.container&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;background:red; &nbsp;&nbsp;&nbsp;&nbsp;#id&nbsp;&{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;background:blue; &nbsp;&nbsp;&nbsp;&nbsp;}}/*&nbsp;compiles&nbsp;to:&nbsp;*/.container&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;background:&nbsp;red;}#id&nbsp;.container&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;background:&nbsp;blue;}但请注意,这会以某种方式破坏您的嵌套结构,从而可能会增加在样式表中查找特定规则的工作量。*:在前面不允许有空格以外的其他字符&。所以你不能直接连接selector+&nbsp;&-&nbsp;#id&会抛出错误。

幕布斯6054654

如果是这种情况,我认为您需要使用更好的方法来创建类名或类名约定。例如,就像你说的那样,你希望.container课程根据具体的用法或外观有不同的颜色。你可以这样做:SCSS.container&nbsp;{ &nbsp;&nbsp;background:&nbsp;red; &nbsp;&nbsp;&--desc&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;background:&nbsp;blue; &nbsp;&nbsp;} &nbsp;&nbsp;//&nbsp;or&nbsp;you&nbsp;can&nbsp;do&nbsp;a&nbsp;more&nbsp;specific&nbsp;name &nbsp;&nbsp;&--blue&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;background:&nbsp;blue; &nbsp;&nbsp;} &nbsp;&nbsp;&--red&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;background:&nbsp;red; &nbsp;&nbsp;}}CSS.container&nbsp;{ &nbsp;&nbsp;background:&nbsp;red;}.container--desc&nbsp;{ &nbsp;&nbsp;background:&nbsp;blue;}.container--blue&nbsp;{ &nbsp;&nbsp;background:&nbsp;blue;}.container--red&nbsp;{ &nbsp;&nbsp;background:&nbsp;red;}上面的代码基于类命名约定中的BEM方法。您可以查看以下链接:BEM - 块元素修改器方法
打开App,查看更多内容
随时随地看视频慕课网APP