Önemli! Dikey merkez ebeveynin yüksekliğine göredir
Merkezde çalıştığınız öğesinin üst hayır tanımlamış ise
yüksekliğini , hiçbiri dikey merkezleme çözümleri çalışacak!
Şimdi Bootstrap 4'te dikey merkezlemeye ...
Tam yüksekliği ve yapmak için yeni flexbox & size yardımcı programlarını kullanabilirsiniz . Bu seçenekler fazladan CSS gerektirmez ( kap yüksekliğinin (ör: html, gövde)% 100 olması gerekir ).container
display: flex
align-self-center
Flexbox alt öğesinde Seçenek 1
<div class="container d-flex h-100">
<div class="row justify-content-center align-self-center">
I'm vertically centered
</div>
</div>
https://www.codeply.com/go/fFqaDe5Oey
align-items-center
Flexbox üst öğesinde Seçenek 2 ( .row
is display:flex; flex-direction:row
)
<div class="container h-100">
<div class="row align-items-center h-100">
<div class="col-6 mx-auto">
<div class="jumbotron">
I'm vertically centered
</div>
</div>
</div>
</div>
https://www.codeply.com/go/BumdFnmLuk
justify-content-center
Flexbox üst öğesinde Seçenek 3 ( .card
is display:flex;flex-direction:column
)
<div class="container h-100">
<div class="row align-items-center h-100">
<div class="col-6 mx-auto">
<div class="card h-100 border-primary justify-content-center">
<div>
...card content...
</div>
</div>
</div>
</div>
</div>
https://www.codeply.com/go/3gySSEe7nd
Bootstrap 4 Dikey Merkezleme hakkında daha fazla bilgi
Bootstrap 4 şimdi flexbox ve diğer yardımcı programlar sunduğundan , dikey hizalamaya birçok yaklaşım var. http://www.codeply.com/go/WG15ZWC4lf
1 - Otomatik Kenar Boşluklarını Kullanarak Dikey Merkez:
Dikey olarak merkezlemenin başka bir yolu da kullanmaktır my-auto
. Bu, öğeyi kabının içinde ortalar. Örneğin h-100
, satırı tam yüksekliğe getirir my-auto
ve col-sm-12
sütunu dikey olarak ortalar.
<div class="row h-100">
<div class="col-sm-12 my-auto">
<div class="card card-block w-25">Card</div>
</div>
</div>
Otomatik Kenar Boşlukları Demosunu Kullanarak Dikey Merkez
my-auto
dikey y eksenindeki kenar boşluklarını temsil eder ve şunlara eşdeğerdir:
margin-top: auto;
margin-bottom: auto;
2 - Flexbox'lı Dikey Merkez:
Bootstrap 4 yana .row
artık display:flex
sadece kullanabilirsiniz align-self-center
dikey ortalamak için herhangi bir sütun üzerinde ...
<div class="row">
<div class="col-6 align-self-center">
<div class="card card-block">
Center
</div>
</div>
<div class="col-6">
<div class="card card-inverse card-danger">
Taller
</div>
</div>
</div>
veya satırın align-items-center
tamamını .row
dikey olarak ortalamak için tamamını kullanın col-*
...
<div class="row align-items-center">
<div class="col-6">
<div class="card card-block">
Center
</div>
</div>
<div class="col-6">
<div class="card card-inverse card-danger">
Taller
</div>
</div>
</div>
Dikey Merkez Farklı Yükseklik Sütunları Demosu
Ortalamak için bu Q / A'ya bakın, ancak eşit yüksekliği koruyun
3 - Display Utils Kullanarak Dikey Merkez:
Özyükleme 4 olan görüntü utils'i için kullanılabilir display:table
, display:table-cell
, display:inline
, vs .. Bu kullanılabilen dikey hizalama utils hizalama satır içi, sıralı blok veya tablo hücre elemanları.
<div class="row h-50">
<div class="col-sm-12 h-100 d-table">
<div class="card card-block d-table-cell align-middle">
I am centered vertically
</div>
</div>
</div>
Display Utils Demosunu Kullanarak Dikey Merkez
Daha fazla örnek
Dikey ortada dikey orta görüntü. <div>
Kare iç. Konteyner Üst ortada dikey orta
altta dikey orta ve alt <div>
Dikey orta tam ekran jumbotron
Önemli! Boydan bahsettim mi?
Dikey merkezlemenin ana öğenin yüksekliğine göreli olduğunu unutmayın . Tüm sayfayı ortalamak istiyorsanız, çoğu durumda bu CSS'niz olmalıdır ...
body,html {
height: 100%;
}
Veya üst / kapsayıcıda min-height: 100vh
( min-vh-100
Bootstrap 4.1+ sürümünde) kullanın . Bir alt öğeyi ebeveynin içinde ortalamak istiyorsanız. Ebeveynin tanımlanmış bir yüksekliği olmalıdır .
Ayrıca bakınız: Bootstrap 4'te
dikey hizalama
Bootstrap 4 Orta Dikey ve Yatay Hizalama