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 }
Next Comments →
Cám ơn anh.Phải nói bài viết của anh rất thực tế.Nó giúp em biết được khi nào thì cần sử dụng cái gì và sử dụng như thế nào.Rất mong anh sớm viết nhiều bài hay nữa.
Cám ơn bạn, mình rất vui vì có những comment như thế này, nó sẽ là động lực giúp mình để hoàn thành những bài viết tốt hơn.
Thanks again!
Bài hướng dẫn này rất hay đó! cảm ơn bạn nhiều
Bài viết rất hay
Bài viết rất tốt ! Thanks.
Để mình thử làm xem thế nào??thank
Cám ơn a rất nhiều vì sự nhiệt tình & những kiến thức bổ ích mà a share cho mọi người!
Rất cám ơn những bài viết rất rất bổ ích của a
Chắc thằng e đóng quân ở ewebvn luôn quá:D
cảm ơn bạn nhé
Thật dễ hiểu và trình bày rất chi tiết cho các bạn mới học html/css/
cám ơn bạn nhiều nhé ^^~, bài chỉ dẫn rất dễ hiểu
Hy vọng được đọc thêm nhiều bài hướng dẫn hay như thế này nữa của a. Thank
sao e làm phần float nó không ra giống vậy nhỉ ? Tất cả các chữ đều nằm phía dưới hình
Em kiểm tra lại độ lớn của box nhé, text nằm dưới là do box chứa các thành phần không đủ độ lớn để các thành phần bên dưới di chuyển lên, Em cố gắng đọc kỹ và làm theo ví dụ thì em sẽ hiểu được.
Thân!
a ơi ! chỉ e làm cái bõ leave a comment như của a với
Để làm được Comment em cần phải biết các ngôn ngữ lập trình web động như PHP, ASP.Net, … Sắp tới EW sẽ tập trung để về PHP cho anh em. Em có thể tìm hiểu Wordpress. Ew đang chạy mã nguồn này.
Thân!
cảm ơn bạn nhiều. chúc cho trang web của bạn ngày càng phát triển tốt.
Thanks anh. Hy vọng anh sẽ có nhiều bài chỉ dẩn dễ hiểu về html/css nữa :”)
Em thấy ở trường hợp này nếu ko thêm 1 thẻ div trống mà thêm thuộc tính { clear: both} cho thẻ DIV tràn lên nó cũng sẽ ko tràn lên nữa a ah
Bài viết hay, cảm ơn tác giả, chờ nhiều bài tiếp theo!
Tuyệt vời, đây là nơi mà các web beginer nên vào. Các bài viết của bạn ngắn gọn xúc tích và rất dễ hiểu.
cam on ban rat nhieu
Next Comments →
{ 3 trackbacks }