<nav class="navbar navbar-default">
<div class="container">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div>
<a class="navbar-brand" href="http://nowordpress.gatewaywebdesign.com/">
<img src="assets/images/gatewaylogo.png">
</a>
</div>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<li><a href="http://nowordpress.gatewaywebdesign.com/index.html" class="active">Home <span
class="sr-only">(current)</span></a></li>
<li><a href="http://nowordpress.gatewaywebdesign.com/about.html" class="active">About</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
aria-expanded="false">
Services
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="http://nowordpress.gatewaywebdesign.com/website-design.html">Website Design</a></li>
<li><a href="http://nowordpress.gatewaywebdesign.com/graphic-design.html">Graphic Design</a></li>
<li><a href="http://nowordpress.gatewaywebdesign.com/promotional-products.html">Promotional Products</a></li>
<li><a href="http://nowordpress.gatewaywebdesign.com/search-engine-marketing.html">Search Engine Marketing</a></li>
<li><a href="http://nowordpress.gatewaywebdesign.com/wordpress-conversion.html">WordPress Conversion</a></li>
</ul>
</li>
<li><a href="/store.html" class="active">Store</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">My Account</a></li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
所以,我可以让它在
中做我想做的事情@color-purple: "#ffffff"
@colors: purple, light-purple, green, light-green, red, light-red, grey, light-grey, lightest-grey;
.ColorsMixin(@i:0) when(@i =< length(@colors)){ //loop over icons array
@color: extract(@colors, @i); //extract the icon at current index @i
.color--@{color}{
background: @{color-@{color}};
&:before{
content: "@{color}";
}
&:after{
content: "\@{color-@{color}}";
}
}
.ColorsMixin(@i + 1);
}
.ColorsMixin();
一部分。这将输出
content: "\@{color-@{color}}";
但是,当我尝试输出@ color-purple变量作为背景时,LESS会抛出错误。如果我用引号将它包装起来似乎只能工作,但background属性需要十六进制代码而不带引号。
这里的诀窍是什么?
答案 0 :(得分:0)
background: @{color-@{color}};
无效语法较少,正确的语法是:
background: ~'@{color-@{color}}';
但是请注意,通过escaping间接引用变量值的想法是一种特殊的kludge(相当广泛但仍然很脏)。 当你将这样的值直接分配给CSS属性时它会起作用,但它会因其他任何事情而失败,因为这样的值不再是一种颜色,而是一个内容未知的未加引号的字符串...... 例如。以下代码将失败:
@color-dark-purple: #321;
div {
@color: 'color-dark-purple';
background: fade(~'@{color}', 50%); // error, not a color value
}
通过名称获取变量值的正确Less方法是"variable reference",例如:
@color-dark-purple: #321;
div {
@color: 'color-dark-purple';
background: fade(@@color, 50%); // OK, proper color value
}
此外,请花一点时间考虑是否将所有这些颜色作为不同的变量,然后单独列出这些变量名称的整个方法是您真正需要的。通常情况下,单个列表同时具有颜色名称和值,并不是非常膨胀且更易于维护。