W Bootstrap 4 należy użyć text-center
klasy do wyrównania bloków inline .
UWAGA: text-align:center;
zdefiniowana w niestandardowej klasie, którą zastosujesz do elementu nadrzędnego, będzie działać niezależnie od używanej wersji Bootstrap. I to jest dokładnie to, co .text-center
ma zastosowanie.
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
<div class="container">
<div class="row">
<div class="col text-center">
<button class="btn btn-default">Centered button</button>
</div>
</div>
</div>
Jeśli zawartość do wyśrodkowania jest blokowa lub elastyczna (nie inline-
), można użyć flexboksa do wyśrodkowania:
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
<div class="d-flex justify-content-center">
<button class="btn btn-default">Centered button</button>
</div>
... co dotyczy display: flex; justify-content: center
rodzica.
Uwaga: nie używaj .row.justify-content-center
zamiast .d-flex.justify-content-center
, ponieważ .row
stosuje ujemne marginesy w niektórych odstępach czasu reakcji, co skutkuje nieoczekiwanymi poziomymi paskami przewijania (chyba że .row
jest to bezpośredni element potomny .container
, który stosuje dopełnienie boczne, aby przeciwdziałać ujemnemu marginesowi, w prawidłowych odstępach czasu reakcji). Jeśli .row
z jakiegoś powodu musisz użyć , zastąp jego margines i dopełnienie .m-0.p-0
, w którym to przypadku otrzymasz prawie takie same style jak .d-flex
.
Ważna uwaga: Drugie rozwiązanie jest problematyczne, gdy wyśrodkowana treść (przycisk) przekracza szerokość elementu nadrzędnego ( .d-flex
), zwłaszcza gdy rodzic ma szerokość widoku, w szczególności dlatego, że uniemożliwia przewijanie w poziomie do początku treści (lewy większość).
Dlatego nie używaj go, gdy zawartość do wyśrodkowania może być szersza niż dostępna szerokość elementu nadrzędnego, a cała zawartość powinna być dostępna.