Tôi đã thấy rằng trong khi phát triển trang web, việc định tâm theo chiều dọc một vùng chứa (chiều cao cố định) bên trong một vùng chứa chiều cao ngẫu nhiên luôn là một cơn ác mộng đối với nhà phát triển web (ít nhất là tôi). chiều rộng cố định) bên trong một thùng chứa có chiều rộng ngẫu nhiên, margin:0px auto;
có xu hướng phục vụ một cách dễ dàng trong mô hình chuẩn.
Khi mọi thứ có thể đơn giản như vậy tại sao CSS không hoạt động với margin:auto 0px;
khi nói đến việc định tâm một vùng chứa chiều cao cố định bên trong một vùng chứa chiều cao ngẫu nhiên? Có lý do cụ thể nào để làm như vậy không? Cảm ơn bạn đã thông tin chi tiết trước.Tại sao thuộc tính tự động cho lề không hoạt động theo chiều dọc trong khi nó hoạt động theo chiều ngang?
Trả lời
Nó thực sự là một cơn ác mộng hơn bạn nghĩ, chỉ cần không sử dụng lề. vertical-align
thực sự là những gì bạn nên dựa vào cho trung tâm chất lỏng dọc chiều cao. Tôi đã ném cùng một bản demo nhanh chóng để chứng minh quan điểm của tôi:
HTML:
<span></span><div id="any-height"></div>
CSS:
* { margin: 0; padding: 0; }
html, body {
height: 100%;
text-align: center; }
span {
height: 100%;
vertical-align: middle;
display: inline-block; }
#any-height {
background: #000;
text-align: left;
width: 200px;
height: 200px;
vertical-align: middle;
display: inline-block; }
ok, bạn có một điểm. align thẳng đứng không nhất thiết phải là cơn ác mộng, IE7 là, như là IE6. – ptriek
Tôi đã sử dụng căn chỉnh dọc, nhưng không phục vụ giải pháp thỏa đáng ở hầu hết các địa điểm. Lý do: Vấn đề với 'dọc-align' là nó không tương thích tốt với tất cả các trình duyệt. Để tham khảo [kiểm tra liên kết này] (http://reference.sitepoint.com/css/vertical-align#compatibilitysection). Vì vậy, không có điểm nào. :( – ikartik90
[Có các công cụ trên mạng có thể xác minh xem có gì đó hoạt động trên các trình duyệt khác không] (https://browserlab.adobe.com/en-us/index.html), vì vậy bạn không phải dựa vào các biểu đồ tự ý gắn nhãn những thứ như lỗi ... Tôi khá chắc chắn rằng điều này làm việc trong tất cả các trình duyệt chính, và nếu bạn đang tìm kiếm khả năng tương thích mở rộng, bạn nên kiểm tra [bài viết này] (http://blog.mozilla.com/webdev/2009/02/20/cross-browser-inline-block /) – Wex
Câu trả lời đúng cho câu hỏi của bạn là margin: auto 0
doesn 't làm việc theo cùng một cách mà margin: 0 auto
hoạt động vì width: auto
không hoạt động theo cách tương tự height: auto
do es.
Lề tự động dọc hoạt động cho các phần tử được định vị hoàn toàn với chiều cao đã biết.
.parent {
position: relative;
}
.child {
position: absolute;
top: 0; right: 0; bottom: 0; left: 0;
width: 150px;
height: 150px;
margin: auto;
}
css ----------------
.aligncenter{
display: -webkit-box;
display: -moz-box;
display: box;
-webkit-box-align: center;
-moz-box-align: center;
flex-align: center;
-webkit-box-pack: center;
-moz-box-pack: center;
flex-pack: center;
}
html ------------------ -------
<div class="aligncenter">
---your content appear at the middle of the parent div----
</div>
lưu ý ----------- lớp css này hoạt động với hầu hết tất cả các trình duyệt
- 1. WinForms tự động điều chỉnh theo chiều dọc trong khi vẫn điều chỉnh chiều rộng?
- 2. làm cho nội dung div cuộn theo chiều ngang và không theo chiều dọc
- 3. Tự động điều khiển hộp văn bản theo chiều dọc
- 4. Div theo chiều ngang và giữa theo chiều dọc
- 5. Thuộc tính chiều rộng CSS tối thiểu không hoạt động
- 6. Định vị các phần tử div theo chiều ngang, không theo chiều dọc
- 7. Tạo quy mô Viewbox theo chiều dọc nhưng kéo ngang theo chiều ngang
- 8. tại sao lề lớp không hoạt động?
- 9. Tại sao lề phải không hoạt động?
- 10. Sửa đổi tiện ích con thanh tìm kiếm Android để hoạt động theo chiều dọc
- 11. Căn chỉnh JLabel theo chiều dọc không hoạt động như mong đợi
- 12. wxPython: Các mục trong BoxSizer không mở rộng theo chiều ngang, chỉ theo chiều dọc
- 13. căn chỉnh dọc: giữa không hoạt động
- 14. Trường định tâm theo chiều ngang trong trình quản lý trường theo chiều dọc
- 15. Android: Tai nạn khi xoay, ngang theo chiều dọc
- 16. Lây lan các cột CSS theo chiều ngang thay vì theo chiều dọc
- 17. Tại sao sau khi thiết lập chiều cao hoạt ảnh, thuộc tính này trực tiếp ngừng hoạt động
- 18. Chiều cao CSS hoạt động nhưng chiều cao tối thiểu không hoạt động
- 19. Sắp xếp các ô theo chiều ngang và sau đó theo chiều dọc trong graphviz
- 20. Cách đặt hoạt động tiếp theo từ hoạt động tự động hiện tại?
- 21. Lề: Tự động không hoạt động trong IE
- 22. Cố gắng căn giữa div theo chiều ngang và chiều dọc trong màn hình
- 23. Có thể thay đổi thứ tự tab/tiêu điểm trong bảng html sao cho nó truyền theo chiều dọc trước và sau đó theo chiều ngang?
- 24. Chiều rộng divml 100% không hoạt động
- 25. Cách đặt PdfPTable tính theo chiều rộng cột động
- 26. Làm cách nào để cuộn chế độ xem lưới theo chiều ngang không theo chiều dọc trong Android?
- 27. lề trái: tự động và lề phải: tự động không hoạt động trên đầu vào
- 28. Chiều rộng CSS div không hoạt động
- 29. cách làm cho uniformgrid theo chiều dọc
- 30. chiều rộng td, không hoạt động?
http://phrogz.net/css/vertical-align/index.html cung cấp một số thông tin chi tiết: "Bố cục HTML theo truyền thống không được thiết kế để xác định hành vi theo chiều dọc. Theo bản chất của nó, nó mở rộng quy mô, và nội dung chảy đến một chiều cao thích hợp dựa trên chiều rộng có sẵn. Theo truyền thống, việc định cỡ và bố trí theo chiều ngang rất dễ dàng; kích thước theo chiều dọc và bố trí được bắt nguồn từ điều đó. " – justis
true" nhưng vẫn còn, tôi có một cảm giác ruột nó có thể được cải thiện nhiều. Nó chỉ cảm thấy khó xử bạn không thể sử dụng dọc-align: trung, trừ khi container được hiển thị như bảng- – ptriek
@jblasco: Tôi đã đọc trang bạn đã giới thiệu, nhưng có vẻ như tôi không tìm thấy câu trả lời thỏa đáng Lý do: HTML theo truyền thống chỉ có ý định hiển thị/chia sẻ dữ liệu văn bản đơn giản khi được phát minh tại CERN, nhưng sau đó đã có quá nhiều thay đổi khi bạn so sánh HTML truyền thống với HTML5. Sau đó, không phải là thời gian cao để thích ứng với những gì thúc đẩy sự dễ dàng truy cập? – ikartik90