Jon*_*oth 5 css magento less magento2
我遇到了一个问题,我试图.lib-clearfix()通过使用扩展来申请一个类。问题是扩展本身确实有效,但扩展不会应用混入。相关文件和css如下:
{主题路径}/web/css/source/ _sources.less
@import '_variables.less';
@import (reference) '_extends.less';
@import '_typography.less';
@import '_layout.less';
Run Code Online (Sandbox Code Playgroud)
{主题路径}/web/css/source/ _extends.less
@abs-add-clearfix: {
.lib-clearfix();
};
.abs-add-clearfix {
@abs-add-clearfix();
}
Run Code Online (Sandbox Code Playgroud)
lib/web/css/source/lib/ _utilities.less
.lib-clearfix() {
&:before,
&:after {
content: '';
display: table;
}
&:after {
clear: both;
}
}
Run Code Online (Sandbox Code Playgroud)
{theme-path}/{Module}/web/css/source/ _module.css
& when (@media-common = true) {
.header.panel:extend(.abs-add-clearfix) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
.header.panel,正如所写的那样不呈现.lib-clearfix()样式。但是,如果在_module.less我更改header.panel为-
.header.panel {
.lib-clearfix();
}
Run Code Online (Sandbox Code Playgroud)
-- 它按预期工作;应用了 clearfix 样式。为了测试扩展是否被解析,我更改@abs-add-clearfix并恢复了.header.panelcss。
较少的
@abs-add-clearfix: {
color: blue;
};
.abs-add-clearfix {
@abs-add-clearfix();
}
.header.panel:extend(.abs-add-clearfix) {
...
}
Run Code Online (Sandbox Code Playgroud)
输出
.header.panel {
color: blue;
}
Run Code Online (Sandbox Code Playgroud)
因此,我无法理解为什么.lib-clearfix()通过扩展调用失败,尽管该扩展中的其他 css 正确应用,以及为什么在扩展失败的情况下.lib-clearfix()在.header.panel选择器中调用成功。
有人可以帮助我了解这里发生了什么吗?