Центральный блок Bootstrap 4 не может центрироваться

У меня есть следующий загрузочный HTML-код (его JSX, следовательно, className, но идея та же):

<div className="toggleView btn-group center-block" role="group" aria-label="Basic example">
        <button onClick={this.handleTimelineClick} type="button" className={this.state.toggleCalendar == false ? "btn btn-secondary active" : "btn btn-secondary"}>Timeline</button>
        <button onClick={this.handleCalendarClick} type="button" className={this.state.toggleCalendar == true ? "btn btn-secondary active " :"btn btn-secondary"}>Calendar</button>
 </div>

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

введите описание изображения здесь

Зеленая полоса выделяет div toggleView.

Единственный css, который я использую, это следующее:

.toggleView {
    padding: 20px;
}

Почему я не могу центрировать эту группу кнопок?


person ApathyBear    schedule 07.07.2016    source источник


Ответы (3)


btn-group имеет display:inline-block, поэтому вы должны использовать text-center в родительском контейнере..

http://codeply.com/go/hyUYkUrtRN

ПРИМЕЧАНИЕ. В Bootstrap 4 center-block теперь равно mx-auto, представляя margin: 0 auto; для центрирования display:block элементов. В Bootstrap 4 теперь также есть класс d-block, поэтому встроенный элемент можно сделать display:block вот так.

<img src=".." class="d-block mx-auto" >

Также см.: Центрировать содержимое внутри столбца в Начальная загрузка 4

person Zim    schedule 07.07.2016
comment
Спасибо, это немного сбивает меня с толку, почему это работает. Не могли бы вы рассказать немного больше о display:inline-block и о том, что он на самом деле делает, и как text-center решил эту проблему? - person ApathyBear; 07.07.2016
comment
В основном center-block будет работать только с элементом display:block - person Zim; 07.07.2016
comment
Будущим читателям кажется, что m-x-auto переименован в mx-auto fram alpha.5. - person Ole Kristian Losvik; 10.11.2016
comment
Что я нашел в Bootstrap v4.0.0-alpha.6. mx-auto имеет только два значения: margin-left: auto !important и margin-right: auto !important. вертикально-средний класс работал на меня. - person Jonas T; 23.01.2017

Bootstrap 4 (по состоянию на 16 августа 2017 г.) будет использовать d-block, а для центрирования вы используете mx-auto.

person Salvador Cervantes    schedule 17.08.2017
comment
Если элемент не имеет определенной ширины, он вообще не работает. - person Kyobul; 17.12.2018

В Bootstrap 4 нет center-block Вместо этого я использую d-block mx-auto, который устанавливает блокировку отображения, а левое и правое поля — автоматически.

person Greg Gum    schedule 07.09.2016
comment
Сейчас это d-block mx-auto - person Roger; 12.10.2018
comment
@Kyobul, ты уверен? Это сработало для меня. Можете ли вы опубликовать пример? - person Greg Gum; 17.12.2018