Câu trả lời:
Thêm thuộc tính sau:
.c{
...
overflow: hidden;
}
Điều này sẽ buộc vùng chứa phải tôn trọng chiều cao của tất cả các phần tử bên trong nó, bất kể các phần tử nổi.
http://jsfiddle.net/gtdfY/3/
Gần đây, tôi đang thực hiện một dự án yêu cầu thủ thuật này, nhưng cần phải cho phép hiển thị tràn, vì vậy, thay vào đó, bạn có thể sử dụng phần tử giả để xóa các phao của mình, đạt được hiệu quả tương tự trong khi cho phép tràn trên tất cả các phần tử.
.c:after{
clear: both;
content: "";
display: block;
}
Bạn đang thả nổi những đứa trẻ có nghĩa là chúng “lơ lửng” trước thùng chứa. Để lấy đúng chiều cao, bạn phải "dọn sạch" phao
Div style = "clear: both" xóa phần nổi an cung cấp chiều cao chính xác cho vùng chứa. xem http://css.maxdesign.com.au/floatutorial/clear.htm để biết thêm thông tin về phao.
ví dụ.
<div class="c">
<div class="l">
</div>
<div class="m">
World
</div>
<div style="clear: both" />
</div>
Giải pháp tốt nhất và chống đạn nhất là thêm ::before
và ::after
giả nguyên tố vào thùng chứa. Vì vậy, nếu bạn có ví dụ một danh sách như:
<ul class="clearfix">
<li></li>
<li></li>
<li></li>
</ul>
Và mọi phần tử trong danh sách đều có thuộc float:left
tính, sau đó bạn nên thêm vào css của mình:
.clearfix::after, .clearfix::before {
content: '';
clear: both;
display: table;
}
Hoặc bạn có thể thử thuộc display:inline-block;
tính, sau đó bạn không cần thêm bất kỳ tiền tố rõ ràng nào.