Ron*_*Ron 10 html css less twitter-bootstrap twitter-bootstrap-3
因为bootstrap3,我的很多html会像这样结束:
<div class="form-group">
<label class="control-label col-xs-4 col-sm-6">Name on card</label>
<div class="col-xs-8 col-sm-6">
<input class="form-control" type="text" placeholder="Name on Card" required />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-4 col-sm-6">Card Number</label>
<div class="col-xs-8 col-sm-6">
<input class="form-control" type="text" placeholder="Card Number" name="EWAY_CARDNUMBER" required value="4444333322221111" />
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
参见上面的代码,标签节点有不同的媒体屏幕类.我想简单地用他们自己的课来缩短它们.
我试图减少创建一个从多个类扩展的类
my-control-label:extend(.control-label, .col-xs-4, col-sm-6){}
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为较少使用完全匹配上述示例.是的我可以尝试扩展"all",如下所示:
my-control-label:extend(.control-label all, .col-xs-4 all, col-sm-6 all){}
Run Code Online (Sandbox Code Playgroud)
但它很烦人,它会破坏生成的CSS.
那么有什么简单的方法可以避免这种重复吗?
谢谢,罗恩
更新#1:
甚至扩展所有对我的情况都不起作用
HTML
<div id='finalise'>
<form class='form-horizontal'>
<div class='form-group' >
<label class='my-label' />
<div class='my-controls'>
<input class="form-control" type="text" placeholder="Name on Card" required />
</div>
...
</div>
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
减:
#finalise {
.my-label:extend(.control-label all, .col-xs-4 all, .col-sm-3 all, .col-lg-2 all){}
.my-controls:extend(.control-label all, .col-xs-8 all, .col-sm-5 all, .col-lg-4 all){}
}
Run Code Online (Sandbox Code Playgroud)
生成的css:
@media (min-width: 768px) {
.form-horizontal .control-label,
.form-horizontal #finalise .label,
.form-horizontal #finalise .controls {
text-align: right;
}
}
Run Code Online (Sandbox Code Playgroud)
看到第3行不会应用html节点,这就是为什么它不起作用.
有什么建议?
更新#2: 虽然它不是将几个类组合成自定义类的通用方法,但它解决了这个问题.它使用bootstrap grid mixins解决了这个问题.谢谢NiloVelez
HTML
<div id='finalise'>
<form class='form-horizontal'>
<div class='form-group' >
<label class='control-label' />
<div class='controls'>
<input class="form-control" type="text" placeholder="Name on Card" required />
</div>
...
</div>
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
减:
#finalise {
.form-group {
.make-row();
}
.control-label {
.make-xs-column(4);
.make-sm-column(5);
.make-lg-column(6);
}
.controls {
.make-xs-column(8);
.make-sm-column(5);
.make-lg-column(6);
}
}
Run Code Online (Sandbox Code Playgroud)
您必须解决自己的情况,但 Bootstrap 附带了 LESS mixin,旨在减少由负责任的网格列引起的选择器膨胀
http://getbootstrap.com/css/#grid-less
你可以做这样的事情(来自文档)
.wrapper {
.make-row();
}
.content-main {
.make-lg-column(8);
}
.content-secondary {
.make-lg-column(3);
.make-lg-column-offset(1);
}
Run Code Online (Sandbox Code Playgroud)
...
<div class="wrapper">
<div class="content-main">...</div>
<div class="content-secondary">...</div>
</div>
Run Code Online (Sandbox Code Playgroud)
更新: Bootstrap 现在提供了一些关于 LESS mixin 的更多文档:
http://getbootstrap.com/css/#less-mixins-vendor
http://getbootstrap.com/css/#less-mixins-utility
| 归档时间: |
|
| 查看次数: |
1176 次 |
| 最近记录: |