难道不可能性增加span3
类在一个mixin避免把它的每一个元素在我的HTML? 就像是:
.myclass {
.span3;
// other rules...
}
编辑
我很抱歉,我忘了指定一个重要的细节: span3
是一个标准的自举类的。 我没有发现它在引导框架的定义任何文件。
难道不可能性增加span3
类在一个mixin避免把它的每一个元素在我的HTML? 就像是:
.myclass {
.span3;
// other rules...
}
编辑
我很抱歉,我忘了指定一个重要的细节: span3
是一个标准的自举类的。 我没有发现它在引导框架的定义任何文件。
你真正想要的是一些被称为扩展在更短的和SASS术语。 例如,你想要一个HTML元素(只是一个例子)...
<div class="myclass"></div>
...... 充分行为,如果它有一个span3
类从引导添加到它,但没有实际添加该类的HTML。 这可以在更短的1.4.0使用来实现:extend()
但仍然不容易,主要是因为动态类生成引导将不会被拾起:extend()
下面是一个例子。 假设该初始更少的代码( 未动态生成.span3
类作为自举一样):
.span3 {
width: 150px;
}
.someClass .span3 {
font-size: 12px;
}
.someOtherClass.span3 {
background: blue;
}
您在1.4.0添加此更少的代码:
.myclass {
&:extend(.span3);
}
产生这个CSS:
.span3,
.myclass {
width: 150px;
}
.someClass .span3 {
font-size: 12px;
}
.someOtherClass.span3 {
background: blue;
}
注:怎么不自动扩展的其他实例.span3
。 这是不同的比SASS ,但它只是意味着你需要更加明确一点在扩大。 这有避免过度CSS代码膨胀的优势。
要充分伸展,只需将all
关键字的extend()
这是从我的原代码更新,因为我不知道的all
选项):
.myclass {
&:extend(.span3 all);
}
产生这样的:
.span3,
.myclass {
width: 150px;
}
.someClass .span3,
.someClass .myclass {
font-size: 12px;
}
.someOtherClass.span3,
.someOtherClass.myclass {
background: blue;
}
这使得你的.myclass
完全等价 (在我的例子)到.span3
类。 这意味着你的情况,但问题在于,你需要重新定义自举的任何动态类几代是非动态的。 事情是这样的:
.span3 {
.span(3);
}
这是为了让:extend(.span3)
会找到一个硬编码类扩展到。 这将需要为动态使用任何选择的字符串做.span@{index}
添加.span3
。
这个答案假设你从一个动态生成的类需要混入特性(这就是我认为您的问题)。
好吧,我相信我发现您的问题。 首先, 引导定义.spanX
一系列的类mixins.less
文件 ,所以你显然需要确保你包括在你的引导装入。 不过,我想这是你有那些已经包含给定的。
主要问题
主要的问题是引导是如何产生的,现在,通过在一个循环中动态类的名称。 这是定义循环.spanX
系列:
.spanX (@index) when (@index > 0) {
.span@{index} { .span(@index); }
.spanX(@index - 1);
}
.spanX (0) {}
目前, 因为类名称本身正在动态生成的 ,它不能被用来作为一个混合的名字。 我不知道这是否是一个错误或仅仅是更小的限制,但我知道,在写作的现在,任何动态生成的类名不作为一个混合的名字。 因此, .span3
可能在CSS代码放置在你的HTML一类,但它不是直接提供给用于混入目的访问。
修复
然而,由于他们是如何构造的代码,你仍然可以得到你所需要的,因为你可以在循环代码见上面,他们使用一个真正的mixin本身定义的代码.spanX
类。 因此,你应该能够做到这一点:
.myclass {
.span(3);
// other rules...
}
该.span(3)
码是什么,循环使用填充.span3
类,所以称它为你的类将给予相同的代码.span3
了。 具体地引导已在此定义mixins.less
该混入:
.span (@columns) {
width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1));
*width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%);
}
所以,你会得到width
为属性.span3
在.myclass
。
这是很容易与Less.js完成,但真正的问题是:“我应该用我的非结构类混合结构网格类”
答案是否定的。
这是一个坏主意,网格系统的优势在于,它创建的结构造型等造型之间的关注点分离。 我不是说“它应该永远,永远,永远做”。 但总的来说,它不应该。 我甚至不喜欢看到的是:
<div class="span3 sidebar">
<ul class="nav">
...
</ul>
</div>
凡span3
是在同一个div
作为.sidebar
类。 这里的问题是,现在你的侧边栏不只是“漂浮”格之列里面,它已成为电网的一部分 - 这(一般),使得它更难以维持,因为解决方法的你的风格你需要建立强制这种造型来响应。
那么你可以这样做,但你必须定义.somethign
第一,在这个例子中,我将做到这一点font-wight: bold;
和font-size 20px
。 正如你在第二类看看。体我没有定义font-weight: bold;
和font-size: 20px;
我只是说.something
进去
.something {
font-weight: bold;
font-size: 20px;
}
.body {
background-color: gray;
border: ridge 2px black;
.something
}
你可以在这里看到的例子。 http://jsfiddle.net/7GMZd/
你不能做这种方式
.body {
background-color: gray;
border: ridge 2px black;
.something {
font-weight: bold;
font-size: 20px;
}
}