W Bootstrap 4 należy użyć text-centerklasy 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-centerma 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: centerrodzica.
Uwaga: nie używaj .row.justify-content-centerzamiast .d-flex.justify-content-center, ponieważ .rowstosuje ujemne marginesy w niektórych odstępach czasu reakcji, co skutkuje nieoczekiwanymi poziomymi paskami przewijania (chyba że .rowjest 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 .rowz 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.