版本2的Twitters“Bootstrap”UI框架今天发布。虽然我觉得它很方便,我不喜欢它是非语义的。
我宁愿避免在我的HTML中设置类.span6 .table-striped。
因为Bootstrap是建立在较少的基础之上,我期望有一个很好的方法使用一个项目特定的更少的表,可以利用mixins来将引导定义的善良归功于良好的语义类名。
我将bootstrap.less克隆到myproject.less中,并调整了@import行中的路径,然后在底部添加了以下内容:
#call-to-action { .span6; }
但是lessc阻塞了它,并抱怨说:
.span6 is undefined in
同样,尝试.columns(6)产生相同的错误(“.columns未定义”)。
其他混合,例如.table,.table-bordered等,似乎工作正常。
我缺少什么?什么是使用引导,同时保持非语义类名从我漂亮的语义标记的最佳实践?
解决方法
确定在较少,这是我怎么想出来。它是我能做的最好的,我不知道如何处理.row语义,但哦。
基本上我创建了一个自定义mixins.less并创建一个mixin名为.col和变量是@col。所以当你写你的选择器,并做类似于.col(3); .col(4); .col(5);或类似的东西。它应该创建适当的宽度。我不知道这将如何工作的嵌套列。
//custom-mixins.less .col (@col) { #gridSystem > .gridColumn(@gridGutterWidth); #gridSystem > .columns(@gridGutterWidth,@gridColumnWidth,@gridRowWidth,@col); } //styles.less .greetings { .col(3); }
//styles.css .greetings { float: left; margin-left: 20px; width: 220px; }