【发布时间】:2012-11-12 02:33:09
【问题描述】:
我知道混合和参数混合。我们正在寻找一种将 CSS / LESS 中的任何通用选择器变成 mixin 的方法。
例如在Twitter BootStrap,我们有here
.navbar .nav > li {
float: left;
}
如果我必须在课堂上使用它,比如 .mynavbar,我希望能够做到这一点
INPUT->
.mynavbar {
.navbar .nav >li;
}
OUTPUT->
.mynavbar {
float:left;
}
现在我知道当前版本的 LESS 无法做到这一点,因为编译器会标记解析器错误。我希望有人帮助我稍微更改一下 less.js 的源代码,以便它可行。
我已成功联系到the source code for the mixin parser。我尝试在那里更改 RegExp,但它会干扰解析器的其他部分。我知道我们只需要进行一些更改,因为我们不仅要接受 .mixin 和 #mixin,还必须接受任何 mixin,例如标签/属性选择器,例如 input[type=text]。
目前是开发使用 Bootstrap 的 UI 框架所需要的。不幸的是,bootstrap 中的许多地方都充斥着直接标签选择器,而不是 id 和类。
【问题讨论】:
-
你为什么要这个?为什么不为你想要的样式制作一个 mixin,并在你需要的地方包含 mixin?例如... 取 Twitter Bootstrap 中具有直接标签选择器的位置,复制其中的代码,并为该代码创建一个新类。然后将 mixin 应用到直接标签选择器。
-
@JohnKurlak 是的。这就是我们为内部 LESS 代码所做的事情,但是对于具有非常快的发布周期的 Bootstrap,每次他们发布新版本的代码时,我们都必须通过继续复制代码来更改我们的类混合。
标签: css twitter-bootstrap css-selectors less