div
và các thẻ HTML5 như thẻ header
, footer
, article
để chia layout. Nhưng bản chất các thẻ đó lại hiển thị dạng block nên không thể chia ra các khối header, footer, sidebar như giao diện design được. - left: Nằm phía bên trái
- right: Nằm phía bên phải
- none: Nằm tại chính vị trí của nó (trạng thái bình thường)
1. Sử dụng float:left và float:right để chia bổ cục

div
(hoặc các thẻ header, footer trong HTML5) kết hợp với float:left
- float:right
để chia thành các vị trí như trong giao diện.div#container
như sau:
1
2
3
4
5
| < body > < div id = "container" > ... </ div > </ body > |
div
này. Giả sử mình thiết lập chiều dài cho trang trang web là 1000px
, font chữ 30px
màu trắng và cho nó canh giữa thì lúc này CSS sẽ là:
1
2
3
4
5
6
7
| #container{ width : 1000px ; /*Rộng 1000px*/ margin : 0px auto ; /*Canh giữa màn hình*/ text-align : center ; /*Text bên trong canh giữa*/ font-size : 30px ; /*Font chữ 30px*/ color : #FFF ; /*Font màu trắng*/ } |
100px
và backround màu xanh nên ta chỉ việc tạo một thẻ div#header
và thiết lập CSS cho nó.
1
2
3
4
5
6
7
8
9
10
| < body > < div id = "container" > < div id = "header" > HEADER </ div > .... </ div > </ body > |
1
2
3
4
| #header{ height : 100px ; /*Cao 100px*/ background : blue ; /*Nền màu xanh*/ } |
div#main
để bao quanh hai phần đó lại.
1
2
3
4
5
6
7
8
9
10
11
| < body > < div id = "container" > < div id = "header" > HEADER </ div > < div id = "main" > .... </ div > .... </ div > </ body > |
div
rồi sử dụng thuộc tính float:left
và float:right
để xác định vị trí.
1
2
3
4
5
6
7
8
| < div id = "main" > < div class = "content" > MAIN CONTENT </ div > < div class = "sidebar" > SIDEBAR </ div > </ div > |
content
và sidebar
nhé.
1
2
3
4
5
6
7
8
9
10
11
12
| .content{ float:left; /*Nằm bên trái*/ width: 700px; /*Rộng 700px*/ height: 300px; /*Cao 300px*/ background: red;/*Nền màu đỏ*/ } .sidebar{ width: 300px; /*Rộng 300px*/ float: right; /*Nằm bên phải*/ height: 300px; /*Cao 100px*/ background: pink;/*Nền màu hồng*/ } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| < body > < div id = "container" > < div id = "header" > HEADER </ div > < div id = "main" > < div class = "content" > MAIN CONTENT </ div > < div class = "sidebar" > SIDEBAR </ div > </ div > < div id = "footer" > FOOTER </ div > </ div > </ body > |
100px
và màu nền xám
1
2
3
4
| #footer{ background : gray ; height : 100px ; } |
div#main
, mà thẻ div#main
lại chứa hai thẻ có float:left
và float:right
nên theo mặc định nó sẽ có chiều cao là 0px
, nghĩa là thuộc tính float
sẽ không được tính vào vùng chiếm không gian của thẻ cha nó. Lúc này footer sẽ bị hai phần Main content và Sidebarđè lên trên.- Cách 1: thêm thuộc tính
overflow:hidden
cho thẻdiv#main
(div chứa hai phần left right)123#main{
overflow
:
hidden
}
- Cách 2: thêm một thẻ
div
nằm bên dưới kế tiếp thẻdiv.sidebar
và thiết lập CSS cho nó làclear:both
(xem toàn bộ code tại bước 6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
| <!DOCTYPE html> < html > < head > < title >Chia layout với float - freetuts.net</ title > < meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8" > < style > #container{ width: 1000px; /*Rộng 1000px*/ margin: 0px auto; /*Canh giữa màn hình*/ text-align: center; /*Text bên trong canh giữa*/ font-size: 30px; /*Font chữ 30px*/ color: #FFF; /*Font màu trắng*/ } #header{ height: 100px; /*Cao 100px*/ background: blue; /*Nền màu xanh*/ } .content{ float:left; /*Nằm bên trái*/ width: 700px; /*Rộng 700px*/ height: 300px; /*Cao 300px*/ background: red;/*Nền màu đỏ*/ } .sidebar{ width: 300px; /*Rộng 300px*/ float: right; /*Nằm bên phải*/ height: 300px; /*Cao 100px*/ background: pink;/*Nền màu hồng*/ } #footer{ background: gray; height: 100px; } .clear{ clear:both } </ style > </ head > < body > < div id = "container" > < div id = "header" > HEADER </ div > < div id = "main" > < div class = "content" > MAIN CONTENT </ div > < div class = "sidebar" > SIDEBAR </ div > < div class = "clear" ></ div > </ div > < div id = "footer" > FOOTER </ div > </ div > </ body > </ html > |
2. Lời kết
div
kết hợp với thuộc tính float:left
và float:right
trong CSS để chia bổ cục layout. Nếu bạn là người đang học CSS thì đây là chủ đề khá quan trọng đấy nhé.
No comments:
Post a Comment