Как центрировать кнопки в Twitter Bootstrap 3?


260

Я создаю форму в Twitter Bootstrap, но у меня возникают проблемы с центрированием кнопки под входом в форме. Я уже пытался применить center-blockкласс к кнопке, но это не сработало. Как мне это исправить?

Вот мой код.

<!-- Button -->
<div class="form-group">
    <label class="col-md-4 control-label" for="singlebutton"></label>
    <div class="col-md-4">
        <button id="singlebutton" name="singlebutton" class="btn btn-primary center-block">
            Next Step!
        </button>
    </div>
</div>

Ответы:


571

Заверните кнопку в div с классом «текст-центр».

Просто измените это:

<!-- wrong -->
<div class="col-md-4 center-block">
    <button id="singlebutton" name="singlebutton" class="btn btn-primary center-block">Next Step!</button>
</div>

К этому:

<!-- correct -->
<div class="col-md-4 text-center"> 
    <button id="singlebutton" name="singlebutton" class="btn btn-primary">Next Step!</button> 
</div>

редактировать

По состоянию на BootstrapV4 , center-blockбыл исключен # 19102 в пользуm-*-auto


1
Работает даже с Фондом)
divideByZero

35

Согласно документации Twitter Bootstrap: http://getbootstrap.com/css/#helper-classes-center

<!-- Button -->
<div class="form-group">
   <label class="col-md-4 control-label" for="singlebutton"></label>
   <div class="col-md-4 center-block">
      <button id="singlebutton" name="singlebutton" class="btn btn-primary center-block">
          Next Step!
       </button>
   </div>  
</div>

Все, что center-blockделает класс , это сообщает элементу, что его поле имеет значение 0 auto, а auto - это левые / правые поля. Однако, если только класс text-center или css text-align: center; установлен на родительском элементе, элемент не знает точки для выполнения этого автоматического вычисления, поэтому не будет центрировать себя, как ожидалось.

Посмотрите пример кода выше здесь: https://jsfiddle.net/Seany84/2j9pxt1z/


33
<div class="row">
  <div class="col-sm-12">
    <div class="text-center">
      <button class="btn btn-primary" id="singlebutton"> Next Step!</button>
    </div>
  </div>
</div>

Это тот, который работал для меня. Я попробовал другие выше, и это не будет в центре.
Mjwrazor

Как сделать то же самое с inputэлементом?
InfZero


8
<div class="container-fluid">
   <div class="col-sm-12 text-center">
       <button class="btn btn-primary" title="Submit"></button>
       <button class="btn btn-warning" title="Cancel"></button>
   </div>
</div>

2
Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, почему и / или как этот код отвечает на вопрос, повышает его долгосрочную ценность.
Ajean

5

Вы можете сделать это, задав маржу или разместив эти элементы абсолютно.

Например

.button{
  margin:0px auto; //it will center them 
}

0px будет сверху и снизу, а auto будет слева и справа.


5

Я попробовал следующий код, и он работал для меня.

<button class="btn btn-default center-block" type="submit">Button</button>

Кнопка управления находится в div, и использование начальной загрузки класса центральных блоков помогло мне выровнять кнопку по центру div

Проверьте ссылку, где вы найдете класс центральных блоков

http://getbootstrap.com/css/#helper-classes-center



3

Обновление для Bootstrap 4:

Оберните кнопку набором div с помощью служебных классов 'd-flex' и 'justify-content-center', чтобы воспользоваться преимуществами flexbox.

<!-- Button -->
<div class="form-group">
  <div class="d-flex justify-content-center">
    <button id="singlebutton" name="singlebutton" class="btn btn-primary">
      Next Step!
    </button>
  </div>
</div>

Преимущество использования flexbox заключается в возможности добавления дополнительных элементов / кнопок на одной оси, но с их собственным отдельным выравниванием. Это также открывает возможность вертикального выравнивания с классами «align-items-start / center / end».

Вы можете обернуть метку и кнопку с другим div, чтобы они совпали друг с другом.

например, https://codepen.io/anon/pen/BJoeRY?editors=1000


1

Вы можете сделать следующее. Это также позволяет избежать наложения кнопок.

<div class="center-block" style="max-width:400px">
  <a href="#" class="btn btn-success">Accept</a>
  <a href="#" class="btn btn-danger"> Reject</a>
</div>

1

Это работает для меня, чтобы попытаться сделать независимым, а <div>затем положить buttonв это. именно так :

<div id="contactBtn">
            <button type="submit" class="btn btn-primary ">Send</button>
</div>

Затем перейдите на свою CSSстраницу стиля и сделайте Text-align:centerтак:

#contactBtn{text-align: center;}

0

Для Bootstrap 3

мы делим пространство на столбцы, используем 8 маленьких столбцов (col-xs-8), оставляем 4 пустых столбца (col-xs-offset-4) и применяем свойство (center-block)

<!--Footer-->
<div class="modal-footer">
  <div class="col-xs-8 col-xs-offset-4 center-block">
    <button type="submit" class="btn btn-primary">Enviar</button>
    <button type="button" class="btn btn-danger" data-dismiss="modal">Cerrar</button>
    </div>
</div>

Для Bootstrap 4

Мы используем Spacing, Bootstrap включает в себя широкий спектр служебных классов сокращенного и дополненного полей ответов, чтобы изменить внешний вид элемента. Имена классов именуются в формате {свойство} {сторон} - {размер} для xs и {свойство} {сторон} - {точка останова} - {размер} для sm, md, lg и xl.

больше информации здесь: https://getbootstrap.com/docs/4.1/utilities/spacing/

<!--Footer-->
<div class="modal-footer">
  <button type="submit" class="btn btn-primary ml-auto">Enviar</button>
  <button type="button" class="btn btn-danger mr-auto" data-dismiss="modal">Cerrar</button>
</div>

Хотя этот фрагмент кода может решить вопрос, включение пояснения поможет улучшить качество вашего ответа. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин, по которым вы предлагаете код.
Стефан Крейн

0

У меня была эта проблема. я использовал

<div class = "col-xs-8 text-center">

На моем div, содержащем несколько строк h3, пару строк h4 и кнопку Bootstrap. Все, кроме кнопки, переместилось в центр после того, как я использовал text-center, поэтому я вошел в свой CSS-лист, переопределяющий Bootstrap, и дал кнопке

margin: auto;

который, кажется, решил проблему.


-2

или вы можете задать определенные смещения, чтобы сделать положение кнопки там, где вы хотите, просто с помощью системы начальной загрузки,

<div class="col-md-offset-4 col-md-2 col-md-offset-5">
<input type="submit" class="btn btn-block" value="submit"/>

таким образом, также вы можете указать размер кнопки, если вы установите btn-block. Конечно, это будет работать только в диапазоне размеров md, если вы хотите установить другие размеры, используйте xs, sm, lg.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.