【问题标题】:Having trouble with LESS and MixinsLESS 和 Mixins 遇到问题
【发布时间】:2013-05-07 15:48:53
【问题描述】:

据我了解,这是有效的 LESS 语法:

.some-mixin(@color)
{
   border-top:1px solid @color;
}

.some-element {
   .some-mixin (#FFFFFF);
}

结果会这样:

.some-element {
   border-top:1px solid #FFFFFF;
}

现在假设我们的原始 CSS 语法是这样的:

ul.sidebar li.categoryA { border-left: 15px solid #F3661F; }
ul.sidebar li.categoryA.active, 
ul.sidebar li.categoryA.active a { 
    background: #F3661F; 
    border-top:1px solid #F3661F; 
    border-bottom: 1px solid #F3661F; 
}
ul.sidebar li.categoryA:hover { 
    color:#AAA; border-left:229px solid #F3661F;  
}

我们还要考虑到,在ul.sidebar li 下有很多不同的“类别”(不仅仅是 A),只是颜色不同而已。这就是我的想法:

/* MIXIN */

.category-item (@color)
{
    border-left: 15px solid @color;

    &.active, &.active a {
        background: @color;
        border-top: 1px solid @color;
        border-bottom: 1px solid @color;
    }

    &:hover {
        color: @color;
        border-left: 229px solid @color;
    }
}

/* RULES */

ul.sidebar li {
    .categoryA { .category-item(#F3661F); }
    .categoryB { .category-item(#FF0000); }
    .categoryC { .category-item(#00FF00); }

    /* Etc... */
}

然而:最后一个工作。

我做错了吗?我发明了另一个……更少吗?


P.S.刚刚找到this answer。猜猜我正在尝试做的是仍然不受支持吗?嗯……

【问题讨论】:

  • 我看不到 LESS 不支持您尝试执行的操作的任何部分。我必须在这里遗漏一些东西......因为我没有看到问题。

标签: css less mixins


【解决方案1】:

试试这个:

ul.sidebar li {
    &.categoryA { .category-item(#F3661F); }
    &.categoryB { .category-item(#FF0000); }
    &.categoryC { .category-item(#00FF00); }

  /*Etc.*/
}

这对我来说很好。输出是:

ul.sidebar li.categoryA {
  border-left: 15px solid #f3661f;
}
ul.sidebar li.categoryA.active,
ul.sidebar li.categoryA.active a {
  background: #f3661f;
  border-top: 1px solid #f3661f;
  border-bottom: 1px solid #f3661f;
}
ul.sidebar li.categoryA:hover {
  color: #f3661f;
  border-left: 229px solid #f3661f;
}
...

【讨论】:

  • 如果你在less2css.org上尝试它,它不能是LESS的版本,因为它从1.1.0开始工作,也许你可以检查代码中的拼写错误。
  • 我真的不确定我做错了什么......但我猜你是对的(也许与&s有关?不知道......)谢谢反正很多! :-)
猜你喜欢
  • 1970-01-01
  • 2016-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-26
  • 2016-11-21
  • 2012-05-17
  • 2016-06-04
相关资源
最近更新 更多