Bootstrap是否支持固定宽度的按钮?当前,如果我有两个按钮,即“保存”和“下载”,则按钮的大小将根据内容而变化。
还有扩展Bootstrap的正确方法是什么?
Bootstrap是否支持固定宽度的按钮?当前,如果我有两个按钮,即“保存”和“下载”,则按钮的大小将根据内容而变化。
还有扩展Bootstrap的正确方法是什么?
Answers:
为此,您可以想出两个按钮都可以的宽度,然后创建一个具有该宽度的自定义类,然后将其添加到您的按钮中,如下所示:
的CSS
.custom {
width: 78px !important;
}
然后,我可以使用此类并将其添加到按钮中,如下所示:
<p><button href="#" class="btn btn-primary custom">Save</button></p>
<p><button href="#" class="btn btn-success custom">Download</button></p>
您可以采用自己创建的自定义类,并将其放在自己的样式表中,然后在引导样式表之后加载该样式表。我们这样做是因为在更新框架时,您放置在引导样式表中的所有更改可能会意外丢失,我们还希望更改优先于默认值。
em
单位而不是像素,它们可以帮助您通过字符长度设置宽度
如果将按钮放在“ btn-group”类的div内,则内部按钮的大小将与最大按钮的大小相同。
例如:
<div class="btn-group">
<button type="button" class="btn btn-default">Left</button>
<button type="button" class="btn btn-default">Middle</button>
<button type="button" class="btn btn-default">Right</button>
</div>
扩展@ kravits88答案:
这将拉伸按钮以适合整个宽度:
<div className="btn-group-justified">
<div className="btn-group">
<button type="button" className="btn btn-primary">SAVE MY DEAR!</button>
</div>
<div className="btn-group">
<button type="button" className="btn btn-default">CANCEL</button>
</div>
</div>
btn-group-justified
是关键类。请参阅此处的文档: getbootstrap.com/docs/3.3/components/…–
btn-group-justified和btn-group仅适用于静态内容,而不适用于动态创建的按钮,并且在CSS中用button固定with的做法不切实际,因为即使所有内容都很短,它都保持相同的宽度。
我的解决方案:将同一个类放到按钮组中,然后循环到所有按钮,获取最长按钮的宽度,并将其应用于所有按钮
var bwidth=0
$("button.btnGroup").each(function(i,v){
if($(v).width()>bwidth) bwidth=$(v).width();
});
$("button.btnGroup").width(bwidth);
只是遇到了同样的需要,并未满足于定义固定宽度。
jQuery也是如此:
var max = Math.max ($("#share_cancel").width (), $("#share_commit").width ());
$("#share_cancel").width (max);
$("#share_commit").width (max);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button type="button" class="btn btn-secondary" id="share_cancel">SHORT</button>
<button type="button" class="btn btn-success" id="share_commit">LOOOOOOOOONG</button>
解决问题的最佳方法是使用具有所需列宽的按钮块btn-block。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"/>
<div class="col-md-12">
<button class="btn btn-primary btn-block">Save</button>
</div>
<div class="col-md-12">
<button class="btn btn-success btn-block">Download</button>
</div>
在这里,我通过比较按钮组元素中的按钮找到了一种解决方案。一种简单的解决方案是获得一个宽度最大的按钮,并将宽度设置为其他按钮。因此它们可以具有相等的宽度。
function EqualizeButtons(parentElementId) {
var longest = 0;
var element = $(parentElementId);
element.find(".btn:not(.button-controlled)").each(function () {
$(this).addClass('button-controlled');
var width = $(this).width();
if (longest < width) longest = width;
}).promise().done(function () {
$('.button-controlled').width(longest);
});
}
它像魅力一样运作。
这可能是一个愚蠢的解决方案,但我一直在寻找解决此问题的方法,因此变得懒惰。
无论如何,使用输入class =“ btn ...” ...代替按钮,并将value =属性填充空格,以使它们都具有相同的宽度,效果很好。
例如:
<input type="submit" class="btn btn-primary" value=" Calculate "/>
<input type="reset" class="btn btn-primary"value=" Reset "/>
我一直没有使用引导程序很长时间,也许有充分的理由不使用这种方法,但我认为最好还是分享一下
<button>
标记,则需要使用
,例如:<button type="button" class="btn btn-default"> Edit </button>
。