使用Bootstrap固定宽度按钮

aWe*_*per 169 css css3 twitter-bootstrap

Bootstrap是否支持固定宽度按钮?目前,如果我有2个按钮,"保存"和"下载",按钮大小会根据内容而变化.

还有什么是扩展Bootstrap的正确方法?

Kam*_*ami 297

您还可以使用.btn-block按钮上的类,以便它扩展到父级的宽度.

如果父级是固定宽度元素,则按钮将展开以获取所有宽度.您可以将现有标记应用于容器,以确保固定/流体按钮仅占用所需空间.

<div class="span2">
<p><button class="btn btn-primary btn-block">Save</button></p>
<p><button class="btn btn-success btn-block">Download</button></p>
</div>
Run Code Online (Sandbox Code Playgroud)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />


<div class="span2">
  <p><button class="btn btn-primary btn-block">Save</button></p>
  <p><button class="btn btn-success btn-block">Download</button></p>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 对于 Bootstrap 5,请使用 d-block,而不是 btn-block。 (6认同)

And*_*ich 64

要做到这一点,你可以想出两个按钮都可以使用的宽度,然后用宽度创建一个自定义类,并将其添加到按钮,如下所示:

CSS

.custom {
    width: 78px !important;
}
Run Code Online (Sandbox Code Playgroud)

然后我可以使用这个类并将其添加到按钮,如下所示:

<p><button href="#" class="btn btn-primary custom">Save</button></p>
<p><button href="#" class="btn btn-success custom">Download</button></p>
Run Code Online (Sandbox Code Playgroud)

演示:http://jsfiddle.net/yNsxU/

您可以将您创建的自定义类放在自己的样式表中,该样式表是在引导样式表之后加载的.我们这样做是因为在更新框架时,您在引导程序样式表中所做的任何更改都可能会意外丢失,我们还希望您的更改优先于默认值.

  • [Kami的回答](http://stackoverflow.com/a/12527816/1269037)更好. (2认同)
  • 使用`em`单位而不是像素,它们可以帮助您按字符长度设置宽度 (2认同)
  • @DanDascalescu〜2年后,我不同意。在使按钮展开以填充整个父级之后,作者可能不会出现,可能是显示“保存”的按钮的一半页面。我会建议类似的东西,但是如果需要的话,还可以进行媒体查询。总是有JavaScript可以使em像最大的按钮一样大,这通常是我远离的路径 (2认同)

kra*_*s88 36

如果将按钮放在带有"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> 
Run Code Online (Sandbox Code Playgroud)

引导按钮组

  • 它理论上是最好的答案,但它不起作用;) (20认同)
  • 没有这个不起作用 - 按钮大小不同. (3认同)
  • @DanDascalescu看到这个:http://jsfiddle.net/D2RLR/6984/对我不起作用...... (2认同)
  • 我正在尝试实现相同的功能,上面的代码对我也不起作用.@DanDascalescu你找到了另一种方式吗? (2认同)
  • 按钮也必须是 btn-block 类才能工作,至少对我来说是这样。 (2认同)

Mar*_*arc 12

对于按钮,可以为具有指定最小宽度和最大宽度的特殊按钮类创建另一个CSS选择器.所以如果你的按钮是

<button class="save_button">Save</button>
Run Code Online (Sandbox Code Playgroud)

在您的Bootstrap CSS文件中,您可以创建类似的东西

.save_button {
    min-width: 80px;
    max-width: 80px;
}
Run Code Online (Sandbox Code Playgroud)

这样,即使你有一个响应式设计,它应该始终保持80px.

至于扩展Bootstrap的正确方法,请看一下这个帖子:

扩展Bootstrap


Pra*_* R. 6

对于 BS 4 和 BS 5,您还可以使用sizing,并应用 w-100 以便按钮可以占据父容器的整个宽度。

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p>
  Using btn-block
</p>
<div class="container-fluid">
  <div class="btn-group col" role="group" aria-label="Basic example">
    <button type="button" class="btn btn-outline-secondary">Left</button>
    <button type="button" class="btn btn-outline-secondary btn-block">Middle</button>
    <button type="button" class="btn btn-outline-secondary">Right</button>
  </div>
</div>

<p>
  Using w-100
</p>
<div class="container-fluid">
  <div class="btn-group col" role="group" aria-label="Basic example">
    <button type="button" class="btn btn-outline-secondary">Left</button>
    <button type="button" class="btn btn-outline-secondary w-100">Middle</button>
    <button type="button" class="btn btn-outline-secondary">Right</button>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)


Ste*_*rey 6

引导程序 5+

使用网格列设置宽度和边距结束实用程序设置它们之间的边距:

<div>
  Here are two buttons: 
  <button class="btn btn-primary col-3 me-2">PressMe</button>
  <button class="btn btn-primary col-3">PressMeToo</button>
</div>
Run Code Online (Sandbox Code Playgroud)