Css “我如何替换?”&&引用;使用父选择器在较少的变量中?
我有一个较少的混音,就像这样: 我想知道是否可以更改符号,以便参数中的Css “我如何替换?”&&引用;使用父选择器在较少的变量中?,css,less,less-mixins,Css,Less,Less Mixins,我有一个较少的混音,就像这样: 我想知道是否可以更改符号,以便参数中的&可以扩展到父选择器,就像我在变量外部编写它一样 如果您在代码笔的CSS部分单击“查看编译”,您将看到&正被直接输出,如下所示: #section--collapsed, .section &.__collapsible .section--body { transition: transform ease 250ms; transform: scaleY(0); transform-origi
&
可以扩展到父选择器,就像我在变量外部编写它一样
如果您在代码笔的CSS部分单击“查看编译”,您将看到&
正被直接输出,如下所示:
#section--collapsed,
.section &.__collapsible .section--body {
transition: transform ease 250ms;
transform: scaleY(0);
transform-origin: top;
position: absolute;
width: 100%;
z-index: 1;
}
#section--expanded,
.section &.__open .section--body {
transform: scaleY(1);
position: static;
}
我希望删除
(空格)和(空格和符号)。您可以获得想要的结果,但不能将和包含在参数mixin参数中。相反,您需要稍微移动它:
#toggle-container(
@collapsed-selector: ~".__collapsible .section--body",
@expanded-selector: ~".__open .section--body"
) {
&@{collapsed-selector}:extend(#section--collapsed) {}
&@{expanded-selector}:extend(#section--expanded) {}
}
我做了什么?
我将&
移出参数混合参数区域为什么?因为当您使用时,它“按原样使用,除此之外没有任何更改”。这意味着您的“与”将按原样保留,并且不允许按照您的需要引用父项。因此
我将您的mixin参数中的符号和移出到您的ID的CSS中,这样LESS就可以引用孩子的父对象(并且可以按照所需的方式编译)
不,这目前是不可能的(在选择器内插变量中,像“和”或“逗号”这样的特殊符号都没有任何特殊意义)。尽管在这种特殊情况下,我怀疑您是否需要它-因为您可以编写&@{collapsed selector}:extend(#section--collapsed){}
(这当然会让传递一些后代选择器有点混乱,但如果将用例本身计算在内,它很可能永远不会发生).@Hynes在下面发布了一个合理的替代方案。这对我来说已经足够好了,如果我不需要附加到父选择器,我可以用空格开始该参数。谢谢
#toggle-container(
@collapsed-selector: ~".__collapsible .section--body",
@expanded-selector: ~".__open .section--body"
) {
&@{collapsed-selector}:extend(#section--collapsed) {}
&@{expanded-selector}:extend(#section--expanded) {}
}