由于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>
请参阅上面的代码,标签节点有不同的媒体屏幕类。我想简单地用他们自己的课来缩短它们。
我正在努力减少创建一个从多个类扩展的类,如
my-control-label:extend(.control-label, .col-xs-4, col-sm-6){}
但这并不起作用,因为较少使用完全匹配上述示例。是的,我可以尝试扩展&#34;所有&#34;如下:
my-control-label:extend(.control-label all, .col-xs-4 all, col-sm-6 all){}
但它很烦人,它会吹掉生成的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>
减:
#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){}
}
生成的css:
@media (min-width: 768px) {
.form-horizontal .control-label,
.form-horizontal #finalise .label,
.form-horizontal #finalise .controls {
text-align: right;
}
}
请参阅第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>
减:
#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);
}
}
答案 0 :(得分:4)
你必须解决自己的情况,但Bootstrap附带了LESS mixins,旨在减少由负责的网格列引起的选择器膨胀
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);
}
...
<div class="wrapper">
<div class="content-main">...</div>
<div class="content-secondary">...</div>
</div>
<强>更新强> Bootstrap现在提供更多关于它的LESS mixins文档: