Bạn đang ở:
Trang chủ » Tin tức - kiến thức » Thiết kế layout với div
Thiết kế layout với div
Để tăng sự mềm dẻo cho trang web, hiện nay người ta đang cố gắng loại bỏ các table khi thiết kế layout, thay vào đó là div và css. Dưới đây là 1 ví dụ đơn giản giúp dân coder chúng ta có thể nhanh chóng dựng 1 layout mà ko tốn quá nhiều thời gian cho việc design.
VD này trình bày cách thiết kế 1 layout gồm 3 phần: header, body, footer. Phần body gồm left_body và main_body.
example.html
Code:
<head>
<title>Example</title>
<link rel="stylesheet" href="example.css" type="text/css" />
</head>
<body>
<div id="wrapper">
<div id="header">header</div>
<div id="body">
<div id="body_left">body_left</div>
<div id="body_main">body_main</div>
<div></div>
</div>
<div id="footer">footer</div>
</div>
</body>
</html>
example.css
Code:
* {
margin:0;
}
body {
text-align:center;
}
#wrapper {
margin:auto;
width:800px;
}
#header {
height:100px;
background:#99CC66;
}
#footer {
height:100px;
background:#339933;
}
#body_left {
float:left;
width:100px;
height:600px;
background:#FF9900;
}
#body_main {
float:left;
width:700px;
height:600px;
background:#99CCFF;
}
.vide {
clear:both;
}
Như ta thấy ở trên, file html ko có j đặc biệt, nó chỉ bao gồm cấu trúc các thành phần mà ta cần bố trí, còn bố trí như thế nào thì phụ thuộc hoàn toàn vào file css.
Bây giờ, ta sẽ tìm hiểu từng bước cách tạo layout trên:
- Tạo div #wrapper dùng để bao hàm toàn bộ trang web. Ta cần căn giữa div này trong cửa sổ để giúp trang web của chúng ta thích ứng với nhiều loại màn hình và độ phân giải khác nhau. Để làm được điều này, ta dùng margin:auto cho Firefox (vô dụng với IE Grin) và text-align:center trong body cho IE (vô dụng vơi FF Grin). Cuối cùng, thuộc tính width quyết định độ rộng trang web.
- Tạo các div: #header, #footer, #body. Không có gì đặc biệt, chúng sẽ lấy hết độ rộng của #wrapper và bố trí liên tiếp nhau từ trên xuống dưới:
Code:
<div id="wrapper">
<div id="header"></div>
<div id="body"></div>
<div id="footer"></div>
</div>
- Bây giờ trong div #body, ta sẽ chia làm 2 cột bằng cách tạo 2 div #body_left và #body_main với 2 thuộc tính float (trôi nổi) và width. 2 div này sẽ bố trí liên tiếp nhau từ trái sang phải, nếu #body có đủ độ rộng:
Code:
<div id="wrapper">
<div id="header"></div>
<div id="body">
<div id="body_left"></div>
<div id="body_main"></div>
</div>
<div id="footer"></div>
</div>
- Vấn đề bắt đầu nảy sinh: #footer biến mất 1 cách đầy bí ẩn Grin. Thực ra nó ko biến đi đâu cả, có điều ta ko nhìn thấy dc vì nó đã bị #body_left và #body_main che mất. Lý do: #body tuy bao hàm #body_left và #body_main, nhưng chiều cao của nó lại ko phụ thuộc vào chiều cao của #body_left hay #body_main (do thuộc tính "trôi nổi" của chúng). #footer nằm sát dưới #body, mà #body có height 0, cho nên #footer sẽ nằm sát dưới #header, và bị #body_left và #body_main che khuất.
Dĩ nhiên ta có thể đặt height cho #body bằng với height của #body_left và #body_main để đẩy #footer xuống đúng chỗ. Tuy nhiên #body_left và #body_main thường có height thay đổi (phụ thuộc vào nội dung của chúng), và height của chúng thường cũng không bằng nhau. Cho nên ta chọn giải pháp là đặt thêm 1 div đặc biệt với thuộc tính clear:both bên dưới. Với thuộc tính clear:both, div đặc biệt này sẽ luôn nằm sát dưới 2 thằng "trôi nổi" kia. #body lại luôn phải bao hàm div đặc biệt này, do đó, nó sẽ luôn có height bằng với height lớn nhất của #body_left và #body_main. Nhờ vậy, #footer luôn được định vị đúng chỗ:
Code:
<div id="wrapper">
<div id="header"></div>
<div id="body">
<div id="body_left"></div>
<div id="body_main"></div>
<div></div>
</div>
<div id="footer"></div>
</div>
OK! Vậy là ta đã dựng xong 1 layout ngon lành mềm dẻo, với code html hết sức gọn gàng sáng sủa. 1 điều cần lưu ý là khi bố trí các div tạo cột, cần tính với độ rộng bao ngoài của div đó (margin+border+padding+width). Ở VD trên, nếu #body_main có padding:5px thì #wrapper phải rộng ra thêm 10px nữa mới đủ chỗ, nếu không nó sẽ nhảy xuống dưới
Các bài viết khác
- Mã khuyễn mãi Google Adwords
- Lập trình website với ASP.NET
- Giáo trình PHP toàn tập
- Biểu tượng vui trong yahoo chat - tin học văn phòng
- Thế giới internet, Domain, Hosting
- Search Engine là gì?
- Mẫu hợp đồng
- web viec lam, web kiem viec
- web chơi game online
- web choi game
- web nghe nhạc
- web du lich package hotel in vietnam visa tours – budget and luxurious hotels in thailand, angkor wat & cambodia tours , laos, ha noi, ho chi minh city, accommodation
- Trường mầm non quốc tế thiên thần nhỏ
- Xử lý nước thải, xử lý khí
- Gạch không nung
- website hẹn hò tốt nhất hiện nay
- website hoc Search Engine Optimization Websites ( SEO) tốt nhất
Bạn nên xem gì?
Bài đọc nhiều nhất
Từ khóa tìm kiếm
seo hosting chuyên gnhiệp web chuyên nghiệp thiết kế chuyên nghiệp chuyên chuyên nghiệp sach hoc thietkewebsite kien thuc website hoc lam website thiet ke website hoc .net asp php bang gia dang ky domain san pham giơi thieu xay dung trung tam ngoai ngu web trung tram ngoaingu truc tuyen ban hang web ban hang tructuyen web du lich ten mien gia re toi uu hieu qua search-engine phan mem google cong ty hosting domain quang ba marketing website web design quang ba web chuyen nghiep thiet ke web chuyen nghiep

