Quan trọng! Trung tâm dọc tương đối với chiều cao của cha mẹ
Nếu cha mẹ của phần tử bạn đang cố định tâm không có chiều cao xác định
, thì không có giải pháp định tâm dọc nào sẽ hoạt động!
Bây giờ, vào định tâm dọc trong Bootstrap 4 ...
Bạn có thể sử dụng các tiện ích flexbox & size mới để tạo container
chiều cao đầy đủ và display: flex
. Các tùy chọn này không yêu cầu thêm CSS (ngoại trừ chiều cao của vùng chứa (ví dụ: html, thân) phải là 100% ).
Tùy chọn 1 align-self-center
trên flexbox con
<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
Tùy chọn 2 align-items-center
trên cha mẹ flexbox ( .row
là 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
Tùy chọn 3 justify-content-center
trên cha mẹ flexbox ( .card
là 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
Thông tin thêm về Bootstrap 4 Định tâm dọc
Bây giờ Bootstrap 4 cung cấp flexbox và các tiện ích khác , có nhiều cách tiếp cận để căn chỉnh dọc. http://www.codeply.com/go/WG15ZWC4lf
1 - Trung tâm dọc sử dụng lề tự động:
Một cách khác để trung tâm theo chiều dọc là sử dụng my-auto
. Điều này sẽ tập trung vào phần tử trong thùng chứa của nó. Ví dụ: h-100
làm cho hàng đầy đủ chiều cao và my-auto
sẽ căn giữa col-sm-12
cột.
<div class="row h-100">
<div class="col-sm-12 my-auto">
<div class="card card-block w-25">Card</div>
</div>
</div>
Vertical Center Sử dụng Auto Margins Demo
my-auto
đại diện cho lề trên trục y dọc và tương đương với:
margin-top: auto;
margin-bottom: auto;
2 - Trung tâm dọc với Flexbox:
Vì Bootstrap 4 .row
bây giờ, display:flex
bạn chỉ cần sử dụng align-self-center
trên bất kỳ cột nào để căn giữa theo chiều dọc ...
<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>
hoặc, sử dụng align-items-center
trên toàn bộ .row
trung tâm theo chiều dọc, sắp xếp tất cả col-*
trong hàng ...
<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>
Vertical Center Cột khác nhau Chiều cao Demo
Xem Q / A này ở giữa, nhưng duy trì chiều cao bằng nhau
3 - Trung tâm dọc sử dụng các tiện ích hiển thị:
Bootstrap 4 có utils hiển thị có thể được sử dụng cho display:table
, display:table-cell
, display:inline
, vv .. Đây có thể được sử dụng với các utils kết theo chiều dọc để inline class, inline-block hoặc các yếu tố ô trong bảng.
<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>
Trung tâm dọc sử dụng Display Utils Demo
Thêm ví dụ
Hình ảnh trung tâm dọc trong <div>
Trung tâm dọc .row in .container Trung tâm
dọc và dưới cùng trong <div>
Trung tâm con dọc trong cha mẹ
Trung tâm dọc toàn màn hình jumbotron
Quan trọng! Tôi đã đề cập đến chiều cao?
Nhớ định tâm dọc có liên quan đến chiều cao của phần tử cha . Nếu bạn muốn tập trung vào toàn bộ trang, trong hầu hết các trường hợp, đây phải là CSS của bạn ...
body,html {
height: 100%;
}
Hoặc sử dụng min-height: 100vh
( min-vh-100
trong Bootstrap 4.1+) trên cha / container. Nếu bạn muốn tập trung một yếu tố con bên trong cha mẹ. Cha mẹ phải có chiều cao xác định .
Xem thêm: Căn
dọc trong bootstrap 4
Bootstrap 4 Center Căn dọc và ngang