css - LESS - 将 mixin 分配给变量并重用

标签 css less mixins

给定这个 LESS 混入:

#gradient {
  .vertical (@startColor: #555, @endColor: #333) {
      background-color: @endColor;
      background-repeat: repeat-x;
      background-image: -khtml-gradient(linear, left top, left bottom, from(@startColor), to(@endColor)); /* Konqueror */
      background-image: -moz-linear-gradient(@startColor, @endColor); /* FF 3.6+ */
      background-image: -ms-linear-gradient(@startColor, @endColor); /* IE10 */
      background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, @startColor), color-stop(100%, @endColor)); /* Safari 4+, Chrome 2+ */
      background-image: -webkit-linear-gradient(@startColor, @endColor); /* Safari 5.1+, Chrome 10+ */
      background-image: -o-linear-gradient(@startColor, @endColor); /* Opera 11.10 */
      filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",@startColor,@endColor)); /* IE6 & IE7 */
      -ms-filter: %("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",@startColor,@endColor); /* IE8+ */
      background-image: linear-gradient(@startColor, @endColor); /* the standard */
  }
}

通常会按如下方式调用以设置页眉/页脚的样式:

header {
    #gradient > .vertical(@black, @white);
    width: 100%;
}

footer {
    #gradient > .vertical(@black, @white);
    padding: 20px;
}

没问题。但是,我试图将 #gradient > .vertical(@black, @white); 分配给变量 gradient1 并重新使用它。所以理想情况下是这样的:

@gradient1:      #gradient > .vertical(@black, @white);
@headerBackground:    @gradient1;
@footerBackground:    @gradient1;    
header { @headerBackground; width: 100%; }
footer { @footerBackground; padding: 20px; }

这行不通 - 但如何解决才能正常工作?

最佳答案

您不能将混入分配给变量,但您可以创建一个新的混入作为别名:

.gradient1() {
    #gradient > .vertical(@black, @white);
}
.headerBackground() {
    .gradient1();
}
.footerBackground() {
    .gradient1();
}    
header {
    .headerBackground();
}
footer {
    .footerBackground();
}

关于css - LESS - 将 mixin 分配给变量并重用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21467560/

相关文章:

html - 使用 CSS :after background-image in a reusable component 转换小部件

css - Telerik 编辑器 - css 内联样式问题

html - Rails 图片 link_to 不工作

c# - ASP MVC Less 文件给出 : Exception has been thrown by the target of an invocation

syntax - dart mixin 'with' 不能在没有 'extends' 的情况下使用?

c++ - 用于创建混合类的 MPL 工厂方法

sass - 在 Sass mixin 中跳过可选参数

html - css文件的执行顺序

javascript - slideDown 到最后突然跳转

html - LESS 不适用于 WordPress