gpt4 book ai didi

css - LESS 中的双 & 号

转载 作者:行者123 更新时间:2023-12-04 23:53:37 24 4
gpt4 key购买 nike

我对 LESS 编译器中的双 & 符号行为感到困惑。

看:

.heading {
&&--type-small {
font-size: 15px;
}
}

将编译为:
.heading.heading--type-small {
font-size: 15px;
}

那很好。

但。
.wrapper {
.heading {
&&--type-small {
font-size: 15px;
}
}
}

将产生:
.wrapper .heading.wrapper .heading--type-small {
font-size: 15px;
}

看起来很奇怪。不?

是否有任何建议可以使此代码的工作方式如下:
.wrapper .heading.heading--type-small {
font-size: 15px;
}

谢谢 =)

最佳答案

在嵌套规则中使用 & 符号时会发生什么情况,默认嵌套结构在输出选择器中被忽略,&符号充当 外部选择器完整列表的占位符并且只会将所有父规则一直插入到层次结构的顶部(上面所有嵌套级别的“路径”)......没有办法解决这个问题。

所以使用第一个 - &只会将嵌套选择器加入(连接)到整个外部选择器列表(看起来好像它只是将它添加到父选择器)并充当组合器 - 参见 "Nested rules"在lesscss.org。但是,当您使用第二个&符号时 - 您的选择器最终将再次包含所有外部规则 - .wrapper现在将添加两次之间的所有规则。所以,这种行为并不奇怪。另请参阅我对这个问题的回答:How to refer to two previous elements / tags / classes with LESS ?” 以及 & 的更多功能另请参阅下面的 7-phases-max 评论。或查找 & 的一些示例用作 "Advanced Usage of &" 下的“路径”占位符在lesscss.org。

对于您的具体示例:

我不完全确定你为什么要在类名中重复“标题”这个词 .header--type-small , 如果您在一个名为 .header 的类之外使用它...我只会使用其他类,例如 .type-small ,像这样:

.wrapper {
//style for the wrapper
.heading{
//general style for the heading
&.type-small {
//style for the heading with class .type-small
font-size: 15px;
}
&.type-large {
//style for the heading with class .type-large ... and so on
}
}
}

带输出 CSS:
.wrapper .heading.type-small {
font-size: 15px;
}

但是如果你真的因为某些特殊原因真的需要带有重复名称的整个长字符串......你可以这样做:
.wrapper {
//style for the wrapper
.heading {
//general style for the heading
&.heading--type{
&-small {
//style for the heading with class .type-small
font-size: 15px;
}
}
}
}

带输出 CSS:
.wrapper .heading.heading--type-small {
font-size: 15px;
}

关于css - LESS 中的双 & 号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19228089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com