Đây là một lỗi webkit (chrome / safari) được báo cáo, con cái của cha mẹ có chiều cao tối thiểu không thể thừa hưởng thuộc tính chiều cao: https://bugs.webkit.org/show_orms.cgi?id=26559
Rõ ràng Firefox cũng bị ảnh hưởng (hiện tại không thể kiểm tra IE)
Cách giải quyết có thể:
- thêm vị trí: liên quan đến #containment
- thêm vị trí: tuyệt đối vào # ngăn chặn-bóng-trái
Lỗi không hiển thị khi phần tử bên trong có định vị tuyệt đối.
Xem http://jsfiddle.net/xrebB/
Chỉnh sửa vào ngày 10 tháng 4 năm 2014
Vì tôi hiện đang làm việc trong một dự án mà tôi thực sự cần các bộ chứa cha mẹ min-height
và các phần tử con kế thừa chiều cao của bộ chứa, tôi đã thực hiện một số nghiên cứu khác.
Đầu tiên: Tôi không còn chắc chắn nữa liệu hành vi trình duyệt hiện tại có thực sự là lỗi hay không. Thông số kỹ thuật CSS2.1 cho biết:
Tỷ lệ phần trăm được tính tương ứng với chiều cao của khối chứa hộp được tạo. Nếu chiều cao của khối chứa không được chỉ định rõ ràng (nghĩa là, nó phụ thuộc vào chiều cao nội dung) và phần tử này không được định vị tuyệt đối, giá trị sẽ tính thành 'tự động'.
Nếu tôi đặt chiều cao tối thiểu trên thùng chứa của mình, tôi không chỉ định rõ ràng chiều cao của nó - vì vậy phần tử của tôi sẽ có auto
chiều cao. Và đó chính xác là những gì Webkit - và tất cả các trình duyệt khác - làm.
Thứ hai, cách giải quyết tôi tìm thấy:
Nếu tôi đặt thành phần chứa của mình display:table
với height:inherit
nó, nó hoạt động chính xác theo cách tương tự như khi tôi cung cấp cho nó min-height
100%. Và - quan trọng hơn - nếu tôi đặt phần tử con thành display:table-cell
nó sẽ kế thừa hoàn hảo chiều cao của phần tử container - cho dù đó là 100% trở lên.
CSS đầy đủ:
html, body {
height: 100%;
margin: 0;
}
#container {
background: green;
display: table;
height: inherit;
width: 100%;
}
#content {
background: red;
display: table-cell;
}
Đánh dấu:
<div id="container">
<div id="content">
<p>content</p>
</div>
</div>
Xem http://jsfiddle.net/xrebB/54/ .
display:flex
vàflex-direction:column
và cung cấp cho các conflex:1
.