Có cách nào để căn giữa các phần tử html theo chiều dọc hoặc chiều ngang bên trong cha mẹ chính không?
<center></center>
thẻ
<center>
thẻ đã bị từ chối khoảng 12 năm trước.
Có cách nào để căn giữa các phần tử html theo chiều dọc hoặc chiều ngang bên trong cha mẹ chính không?
<center></center>
thẻ
<center>
thẻ đã bị từ chối khoảng 12 năm trước.
Câu trả lời:
Cập nhật : trong khi câu trả lời này có khả năng chính xác trở lại vào đầu năm 2013, thì nó không nên được sử dụng nữa. Các giải pháp thích hợp sử dụng offset .
Đối với đề xuất của người dùng khác, cũng có các lớp bootstrap riêng có sẵn như:
class="text-center"
class="pagination-centered"
cảm ơn @Henning và @trejder
class="text-center"
.pagination-centered
như là một thay thế.
text-center
để bố trí là thực hành rất xấu. Cách thích hợp để căn chỉnh các cột trong Bootstrap là sử dụng col-XX-offset-Y
các lớp. getbootstrap.com/css/#grid-offsding . Câu trả lời này có khả năng đúng vào năm 2013 nhưng không nên được sử dụng nữa ngày hôm nay.
Từ tài liệu Bootstrap :
Đặt một yếu tố
display: block
và trung tâm thông quamargin
. Có sẵn như là một mixin và lớp.
<div class="center-block">...</div>
Đối với khách truy cập trong tương lai cho câu hỏi này:
Nếu bạn đang cố gắng căn giữa một hình ảnh trong một div nhưng hình ảnh sẽ không ở giữa, điều này có thể mô tả vấn đề của bạn:
<div class="col-sm-4 text-center">
<img class="img-responsive text-center" src="myPic.jpg" />
</div>
Các img-responsive
lớp học thêm một display:block
hướng dẫn để các thẻ hình ảnh, mà dừng lại text-align:center
( text-center
lớp) từ làm việc.
GIẢI PHÁP:
<div class="col-sm-4">
<img class="img-responsive center-block" src="myPic.jpg" />
</div>
Thêm center-block
lớp ghi đè display:block
hướng dẫn đưa vào bằng cách sử dụng img-responsive
lớp.
Không có img-responsive
lớp, hình ảnh sẽ tập trung chỉ bằng cách thêm text-center
lớp
Ngoài ra, bạn nên biết những điều cơ bản về flexbox và cách sử dụng nó, vì Bootstrap4 hiện sử dụng nó một cách tự nhiên .
Dưới đây là một video hướng dẫn tuyệt vời, tốc độ nhanh của Brad Schiff
Đây là một cheat sheet tuyệt vời
Cập nhật 2018
Trong Bootstrap 4 , các phương thức định tâm đã thay đổi ..
Trung tâm ngang trong BS4
text-center
vẫn được sử dụng cho display:inline
các yếu tốmx-auto
thay thế center-block
cho display:flex
trẻ em trung tâmoffset-*
hoặc mx-auto
có thể được sử dụng để cột trung tâmmx-auto
(lề tự động trục x) sẽ tập trung display:block
hoặc display:flex
nguyên tố có chiều rộng định nghĩa , ( %
, vw
, px
, vv ..). Flexbox được sử dụng theo mặc định trên các cột lưới, do đó cũng có các phương pháp định tâm flexbox khác nhau.
Demo Bootstrap 4 Định tâm ngang
Để định tâm dọc trong BS4, hãy xem https://stackoverflow.com/a/41464397/171456
Bạn có thể trực tiếp ghi vào tập tin css của bạn như thế này:
.content {
position: absolute;
top: 50%;
left:50%;
transform: translate(-50%,-50%);
}
<div class = "content" >
<p> some text </p>
</div>
tôi dùng cái này
<style>
html, body {
height: 100%;
margin: 0;
padding: 0 0;
}
.container-fluid {
height: 100%;
display: table;
width: 100%;
padding-right: 0;
padding-left: 0;
}
.row-fluid {
height: 100%;
display: table-cell;
vertical-align: middle;
width: 100%;
}
.centering {
float: none;
margin: 0 auto;
}
</style>
<body>
<div class="container-fluid">
<div class="row-fluid">
<div class="offset3 span6 centering">
content here
</div>
</div>
</div>
</body>
để định tâm theo chiều ngang, bạn có thể có một cái gì đó như thế này:
.centering{
float:none;
margin:0 auto
}
<div class="span8 centering"></div>
<img src="img/logo.png" style="float:none; margin:0 auto" />
. Xung quanh img
với cha mẹ div
và cho .text-center
hoặc .pagination-centered
lớp học cho cha mẹ làm việc như một nét duyên dáng.
Tôi thích giải pháp này từ một câu hỏi tương tự. https://stackoverflow.com/a/25036303/2364401 Sử dụng text-center
lớp bootstraps trên dữ liệu bảng thực tế <td>
và <th>
các thành phần tiêu đề bảng . Vì thế
<td class="text-center">Cell data</td>
và
<th class="text-center">Header cell data</th>
Với bootstrap 4 bạn có thể sử dụng flex
<div class="d-flex justify-content-center align-items-center">
<button type="submit" class="btn btn-primary">Create</button>
</div>
nguồn: bootstrap 4.1
bootstrap 4 + Flex giải quyết điều này
bạn có thể dùng
<div class="d-flex justify-content-center align-items-center">
<button type="submit" class="btn btn-primary">Create</button>
</div>
nó nên tập trung vào trung tâm theo chiều ngang và chiều dọc
Tôi phát hiện ra trong Bootstrap 4 bạn có thể làm điều này:
trung tâm ngang thực sự là text-center
đẳng cấp
trung tâm dọc tuy nhiên bằng cách sử dụng các lớp bootstrap là thêm cả hai mb-auto mt-auto
để đáy lề và đáy lề được đặt thành tự động.
cho trung tâm dọc bootstrap4 của một vài mặt hàng
d-flex cho các quy tắc flex
cột flex cho hướng dọc trên các mặt hàng
justify-content-centre để định tâm
kiểu = 'chiều cao: 300px;' phải có các điểm đặt trong đó trung tâm là calc hoặc sử dụng lớp h-100
<div class="d-flex flex-column justify-content-center bg-secondary" style="
height: 300px;
">
<div class="p-2 bg-primary">Flex item</div>
<div class="p-2 bg-primary">Flex item</div>
<div class="p-2 bg-primary">Flex item</div>
</div>