Nếu bạn không cần hỗ trợ IE9 hoặc thấp hơn, bạn có thể sử dụng flexbox một cách tự do và không cần sử dụng bố cục nổi.
Điều đáng chú ý là ngày nay, việc sử dụng các yếu tố nổi để bố trí ngày càng trở nên chán nản hơn với việc sử dụng các giải pháp thay thế tốt hơn.
display: inline-block
- Tốt hơn
- Flexbox - Tốt nhất (nhưng hỗ trợ trình duyệt hạn chế)
Flexbox được hỗ trợ từ Firefox 18, Chrome 21, Opera 12.10 và Internet Explorer 10, Safari 6.1 (bao gồm cả Safari di động) và trình duyệt mặc định của Android 4.4.
Để biết danh sách trình duyệt chi tiết, hãy xem: https://caniuse.com/flexbox .
(Có lẽ một khi vị trí của nó được thiết lập hoàn toàn, nó có thể là cách tuyệt đối được đề xuất để đặt ra các yếu tố.)
Clearfix là một cách để một phần tử tự động xóa các phần tử con của nó , do đó bạn không cần thêm đánh dấu bổ sung. Nó thường được sử dụng trong bố trí float nơi các phần tử được thả nổi được xếp theo chiều ngang.
Clearfix là một cách để chống lại vấn đề container có chiều cao bằng không đối với các phần tử nổi
Một Clearfix được thực hiện như sau:
.clearfix:after {
content: " "; /* Older browser do not support empty content */
visibility: hidden;
display: block;
height: 0;
clear: both;
}
Hoặc, nếu bạn không yêu cầu hỗ trợ IE <8, điều sau đây cũng tốt:
.clearfix:after {
content: "";
display: table;
clear: both;
}
Thông thường bạn sẽ cần phải làm một cái gì đó như sau:
<div>
<div style="float: left;">Sidebar</div>
<div style="clear: both;"></div> <!-- Clear the float -->
</div>
Với Clearfix, bạn chỉ cần những điều sau đây:
<div class="clearfix">
<div style="float: left;" class="clearfix">Sidebar</div>
<!-- No Clearing div! -->
</div>
Đọc về nó trong bài viết này - bởi Chris Coyer @ CSS-Tricks
div
sẽ mở rộng hoàn toàn đến chiều cao phù hợp để bao quanh các con nổi của nó. webtoolkit.info/css-clearfix.html