Float và clear là hai thuộc tính quan trọng của CSS, Float và Clear ngày càng được sử dụng nhiều trong việc thiết kế giao diện, trình bày và dàn trang.
1. Float
Với CSS float, một thành phần có thể được hiển thị ở bên trái hay bên phải của thành phần mẹ, cho phép các thành phần khác di chuyển lên lấp đầy khoảng trống nếu có.
Float thường được sử dụng để căn chỉnh hình ảnh, nhưng nó cũng được sử dụng nhiều trong thiết kế giao diện (layout).
Ví dụ: ở ví dụ sau tôi có một tấm hình và một đoạn văn bản, tôi sẽ float:left cho tấm hình này với mã CSS như sau:
img{float: left}
Code HTML
<div id="wapper">
<img src="logo.jpg" />
<p>Ở đây tôi sử dụng một tấm hình có chiều rộng 200px. Thành phần mẹ (div) có chiều rộng 350px, như vậy còn trống 150px bên phải tấm hình. Khi cho hình <em>float: left</em>, nội dung văn bản sẽ được di chuyển lên để lấp đầy khoảng trống 150px trong thành phần mẹ wapper. Do đó tạo nên hiệu ứng bao quanh hình ảnh</p>
</div>
Ta có kết quả như sau:

Vậy: khi ta float:left cho một thành phần nào đó, thì thành phần đó sẽ di chuyển tận cùng về bên trái (hoặc phải nếu được float:right) so với thành phần mẹ. Các thành phần khác sẽ được di chuyển lên phía trên để lấp đầy khoảng trống còn lại.
Ứng dụng float trong việc thiết kế giao diện.
Ví dụ sau là cách sử dụng thẻ <div> kết hợp với float để thiết kế một giao diện có hai cột song song nhau:
<div id="wapper">
<div id="left">
<img src="logo.jpg" />
<p>Cột thứ nhất có độ rộng 200px và được float: left</p>
</div>
<div id="right">
<p>Ở ví dụ này tôi có một thành phần mẹ (div) có chiều rộng 400px. Trong đó tôi có một thành phần div có có độ rộng 200px và được float: left, một thành phần div có có độ rộng 200px và được float: right.</p>
</div>
</div>
Và code CSS như sau:
#wapper{width: 400px}
#left{float: left; width: 200px}
#right{float: right; width: 200px}
Khi thành phần left (id=”left”) được gán float:left thì nó sẽ được dịch chuyển về tận cùng bên trái. Do nó có chiều rộng 200px nên còn trống 200px bên phải trong thẻ div mẹ. Do đó khi gán float:right cho thành phần right thì nó bị lệch về tận cùng phía bên phải, thành phần right này có độ rộng 200px (bằng độ rộng phần trống trong thành phần div mẹ) nên nó sẽ di chuyển nên và nằm song song với thành phần left tạo thành một giao diện có hai cột.
Ta nhận thấy rằng, khi mỗi thành phần float đều có kích thước cố định thì nó sẽ được xếp song song nhau để tạo ra các cột khi thành phần mẹ đủ rộng. Đây chính là nguyên lý để thiết các giao diện nhiều cột sử dụng float.
Các giá trị của Float
Float có 3 giá trị sau
+ Left: Cố định phần tử về bên trái.
+ Right: Cố định phần tử về bên phải.
+ None: Không thay đổi . (Khi không được khai báo thì giá trị float bằng none).
2. Clear
Clear luôn đi cùng với float. Có thể coi clear là ngược lại của float. Khi float thì các thành phần bên dưới di chuyển nên trên để lấp đầy khoảng trống. Nhưng không phải lúc nào chúng ta cũng muốn như vậy, do đó ta sử dụng clear để ngăn không cho các thành phần phía dưới tràn lên trên. Bạn cứ hình dung rằng khi một thành phần nào đó được gán thuộc tính clear thì nó sẽ giống như một bức tường ngăn các thành phần bên dưới di chuyển lên trên.
Ở ví dụ bên dưới tất cả các thành phần đều được float:left, ta có kết quả sau:
Xem trang: 1 2


{ 28 comments… read them below or add one }
← Previous Comments
Mình cũng đang lơ tơ mơ về phần này nhưng khi đọc xong thì mình rõ nhiều hơn.
Cảm ơn Peter Tran !
nhìn cũng dễ hiểu, cám ơn bài viết
Xin chào các fan của Ewebvn
Mình là Toàn.
Hiện tại mình đang có ý định thực hiện lập một website dịch vụ nhỏ cho tên miền PHIVATTHE.COM/ .VN/ .COM.VN nhưng kiến thức về mảng PHP, JAVA của mình kém quá thành ra một mình mình làm gặp rất nhièu khó khăn.Giờ mình đang muốn tìm một vài người để có thể cùng làm.với mục đích là vừa là rèn giũa kiến thức học được vừa là cọ sát với sản phẩm đầu tay xem có nên cơm cháo gì không, còn mọi chi phí phát sinh thì có thể cùng nhau đóng góp.
Vậy nên bạn nào có thời gian và cảm thấy có thể tham gia được thì liên lạc lại với mình nhé.mìnnh luôn luôn chào đón các bạn có ý định tham gia với mình.
Chi tiết hơn thì các bạn liên lạc với mình rồi cùng trao đổi nhé.
Thân Mai toàn.
eMail: Maitoannet@gmail.com
SĐT: 0169.69.08267
ai có thể cho em biết tại sao khi cho float là left thì mất hết background vậy
Hi em,
Trường hợp này xảy ra thường là do đặt clear chưa đúng, em coi lại xem đã clear đúng cho các thành phần chưa nhé
cung dc đó nhưng phần clear nên đưa ra ứng dụng. ví dụ như nó dc dùng nhiều nhất ở phần footer
← Previous Comments
{ 3 trackbacks }