我是Less的初学者。我想写一个字符串,如" Column-div"在任何div
中 col-lg- [anyNumber] 或 col-md- [anyNumber] 类。
例如类似这样的代码:
.col-lg-*:before {
content: "Column-div";
color: #28a4c9;
}
我如何用Less做这个?
答案 0 :(得分:20)
使用Less:
其中一个选项是基本上创建一个Less循环,如下面的代码示例所示。然而,问题是数字是固定的,因此它将(a)静态生成与数字一样多的类(这意味着膨胀的代码)和(b)如果类具有更高的后缀值,它将不会是覆盖。
.loop(@count) when (@count > 0){ // execute the function only when condition matches.
.loop(@count - 1); // call the iteration again with a decremented count
.col-lg-@{count}:before { // using selector interpolation to add the count number
content: "Column-div";
color: #28a4c9;
}
}
.loop(100); // call the loop with the no. of iterations as the parameter
使用纯CSS:
这种模式匹配还有一个纯CSS替代品。您可以根据需要使用CSS3 Attribute Selectors中的任何一个。代码段中提供了一些示例。
[class^='col-lg']:before { /* class name starts with col-lg */
content: "Column-div";
color: yellow;
}
[class$='col-lg']:before { /* class name ends with col-lg */
content: "Column-div2";
color: beige;
}
[class*='col-lg']:before { /* contains col-lg in class name */
background: chocolate;
}
/* Just for demo */
div:before{
display: block;
}

<div class='col-lg-1'></div>
<div class='col-lg-2'></div>
<div class='col-lg-3'></div>
<div class='a-col-lg'></div>
<div class='b-col-lg'></div>
<div class='c-col-lg'></div>
&#13;