Basic CSS layout 2007-08-22 01:07:43
Để làm dc 1 layout hoàn toàn ko dùng table chỉ CSS + Div thì cũng ko có gì khó khăn lắm. Quan trọng là bạn phải biết cơ bản những thuộc tính và giá trị của thuộc tính đó có tác dụng ra sao. (các vấn đề đó thì anh TG có nhiều bài rồi)
Sau đây mình xin giải thích cách xếp 1 basic CSS layout:
Phía trên là hình mẫu 1 layout cơ bản với header, 1 sidebar, 1 content column và 1 footer.
Như vậy với layout trên bạn sẽ có 5 id trong CSS:
#container
#header
#sidebar
#content
#footer
Như vậy container là 1 div lớn thường dùng để định dạng vị trí của toàn bộ layout. (thường là giữa) và chỉ có 1 số format sau: (ví dụ thôi nhe)
margin:
padding:
Tiếp theo, làm sao để sắp xếp vị trí các "khối Div" đó theo ý mình. Rất đơn giản, bạn hãy phân layout của mình theo từng khối từ trên xuống dưới và từ trái qua phải. Với layout ví dụ, bạn sẽ chỉ cần 4 khối Div như đã nêu hoặc có thể thêm 1 Div trung gian như kiểu container cho phần sidebar + content.
Thuộc tính dùng để sắp xếp định vị các khối Div buộc phải biết và dùng đó là FLOAT. Với layout ví dụ, bạn chỉ cần float:left; cho tất cả các id. (Ko tính container)
Nếu bạn ko định width cho container và khối div đúng, những khối div trên sẽ lần lượt nằm cạnh nhau và kéo dài chiều ngang. Nếu bạn đã định width, do ko đủ width, các div đó sẽ rớt xuống và tự động nằm như hình mẫu.
Nhưng bạn ko muốn định width? (Vì web standard mà) thì bạn tiếp tục dùng thuộc tính Clear. Thuộc tính clear sẽ qui định có cái gì dc phép nằm cạnh cái div đó hay ko. Với layout ví dụ thì #Header ko cần biết width bao nhiêu, chỉ cần clear: both, thì chắc chắn #sidebar và #content sẽ phải xuống hàng dưới mà chơi. Tương tự, ko cần biết đủ width hay ko chỉ cần #content có clear:right; thì #footer buộc phải xuống dưới nằm.
Cơ bản là vậy :D với 2/3 hay 4/5/6 column gì thì cũng như nhau. Luôn nhớ, Div khác Table ở chỗ nó ko phải từ ngoài vào trong mà là từ trên xuống dưới và từ trái qua phải :D. Mọi thắc mắc sẽ dc giải đáp :D
Sau đây mình xin giải thích cách xếp 1 basic CSS layout:
Phía trên là hình mẫu 1 layout cơ bản với header, 1 sidebar, 1 content column và 1 footer.
Như vậy với layout trên bạn sẽ có 5 id trong CSS:
#container
#header
#sidebar
#content
#footer
Như vậy container là 1 div lớn thường dùng để định dạng vị trí của toàn bộ layout. (thường là giữa) và chỉ có 1 số format sau: (ví dụ thôi nhe)
margin:
padding:
Tiếp theo, làm sao để sắp xếp vị trí các "khối Div" đó theo ý mình. Rất đơn giản, bạn hãy phân layout của mình theo từng khối từ trên xuống dưới và từ trái qua phải. Với layout ví dụ, bạn sẽ chỉ cần 4 khối Div như đã nêu hoặc có thể thêm 1 Div trung gian như kiểu container cho phần sidebar + content.
Thuộc tính dùng để sắp xếp định vị các khối Div buộc phải biết và dùng đó là FLOAT. Với layout ví dụ, bạn chỉ cần float:left; cho tất cả các id. (Ko tính container)
Nếu bạn ko định width cho container và khối div đúng, những khối div trên sẽ lần lượt nằm cạnh nhau và kéo dài chiều ngang. Nếu bạn đã định width, do ko đủ width, các div đó sẽ rớt xuống và tự động nằm như hình mẫu.
Nhưng bạn ko muốn định width? (Vì web standard mà) thì bạn tiếp tục dùng thuộc tính Clear. Thuộc tính clear sẽ qui định có cái gì dc phép nằm cạnh cái div đó hay ko. Với layout ví dụ thì #Header ko cần biết width bao nhiêu, chỉ cần clear: both, thì chắc chắn #sidebar và #content sẽ phải xuống hàng dưới mà chơi. Tương tự, ko cần biết đủ width hay ko chỉ cần #content có clear:right; thì #footer buộc phải xuống dưới nằm.
Cơ bản là vậy :D với 2/3 hay 4/5/6 column gì thì cũng như nhau. Luôn nhớ, Div khác Table ở chỗ nó ko phải từ ngoài vào trong mà là từ trên xuống dưới và từ trái qua phải :D. Mọi thắc mắc sẽ dc giải đáp :D
Tra loi 16 comment(s) 2007-08-22 01:07:43
changtraingheo 2007-10-09 05:03:05
Tra loi
littleboy 2007-10-10 01:05:11
bạn vào trang web trên mà xem, mình thấy hướng dẫn rất cụ thể về css layout.
Tra loi
NữThần 2007-10-10 05:06:31
Tra loi
TG 2008-02-18 03:03:25
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- DW6 -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>PHPBASIC</title>
<style>
body{
font-family: Arial,sans-serif;
color: #333333;
line-height: 1.166;
margin: 0px;
padding: 0px;
}
a{
color: #006699;
text-decoration: none;
}
a:link{
color: #006699;
text-decoration: none;
}
a:visited{
color: #006699;
text-decoration: none;
}
a:hover{
color: #006699;
text-decoration: underline;
}
#top{
padding: 10px 0px 0px 0px;
border-bottom: 1px solid #cccccc;
width: 100%;
}
#left{
float: left;
width: 20%;
margin: 0px;
padding: 0px;
background-color: #eeeeee;
border-right: 1px solid #cccccc;
border-bottom: 1px solid #cccccc;
}
#right{
float:right;
width: 20%;
border-left: 1px solid #cccccc;
border-bottom: 1px solid #cccccc;
padding-right: 10px;
}
#content{
float: left;
width: 55%;
}
#bottom{
clear: both;
border: 1px solid #cccccc;
font-size: 75%;
color: #cccccc;
padding: 10px 10px 10px 10px;
}
#bottom img{
padding: 4px 4px 4px 10px;
vertical-align: middle;
}
#left ul a:link, #left ul a:visited {display: block;}
#left ul {list-style: none; margin: 0; padding: 0;}
/* hack to fix IE/Win's broken rendering of block-level anchors in lists */
#left li {border-bottom: 1px solid #EEE;}
/* fix for browsers that don't need the hack */
html>body #left li {border-bottom: none;}
#right{
margin: 0px;
padding: 10px 0px 20px 10px;
font-size: 80%;
}
#right p{
padding: 5px 0px 5px 0px;
}
</style>
</head>
<body>
<div id="top">Top</div>
<div id="left">
Left
</div>
<!--end navBar div -->
<div id="right">
Right </div>
<!--end headlines -->
<div id="content">
<p>Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content</p>
</div>
<!--end content -->
<div id="bottom">
Bottom
</div>
<br />
</body>
</html>
Tra loi
me@ducthuan.info 2008-02-18 05:13:35
Tra loi
gaulucky92 2008-02-22 09:55:27
width:100%;
background:...
...
Kết quả xem trên FF2+IE7 thì OK, nhưng xem trên IE6 thì mấy cái DIV đó "lấn" nhau tùm lum... thế là đành quay lại dùng table :((
Tra loi
MasterZ 2008-03-15 08:23:55
Tra loi
Spirit 2008-03-20 11:38:33
Nếu dùng float đúng thì có lỗi gì thì đa số là do padding,margin và width thôi ^_^
Tra loi
Đào Quang Thịnh 2008-10-10 03:09:53
Code:
<html>
<head>
<title>lam thu </title>
<style type="text/css">
#wap{
padding:0px;
margin:0px;
}
#top{
width:800px;
height:150px;
padding:0px;
margin:0px;
background:#33cc99;
color:#ffffff;
}
#content{
padding:0px;
margin:0px;
width:800px;
height:600px;
background:#cccccc;
}
#left{
padding:0px;
margin:0px;
width:200px;
height:600px;
background:#ffffcc;
color:#008000;
}
#center{
padding:0px;
margin:0px;
width:300px;
height:600px;
background:#dd66cc;
float:left;
color:#ffffff;
}
#right{
padding:0px;
margin:0px;
width:200px;
height:600px;
background:#336699;
float:left;
color:#ffffff;
clear:right;
}
#footer{
padding:0px;
margin:0px;
width:800px;
height:200px;
background:#225599;
color:#ffffff;
}
#center ul li{
list-style: none;
}
#center ol li{
list-style: none;
}
</style>
</head>
<body bgcolor="white">
<div id="wap">
<div id="top"><h1 align="center"> Phan nay nam giua van ban </h1></div>
<div>
<div id="content">
<div id="left">Phan nay ben trai</div>
<div id="center">Phan nay o giua
<ul>
<li><a href="http://www.c3schools.com"> Gioi thieu ve HTML</a></li>
<li><a href="http://www.c3schools.com">Bo cuc mot tag HTML</a></li>
<li><a href="http://www.c3schools.com"> mot so mau sac</a></li>
</ul>
<ol>
<li><a href="http://www.c3schools.com"> Gioi thieu ve css</a></li>
<li><a href="http://www.c3schools.com">Bo cuc mot tag css</a></li>
<li><a href="http://www.c3schools.com"> mot so mau sac</a></li>
<li><a href=#Top>Ve dau trang</a></li>
</ol>
</div>
<div id="right">phan nay ben phai</div>
</div>
</div>
<div id="footer">Phan nay cuoi cung</div>
</div>
</body>
</html>
Tra loi
Hoang Thi 2008-10-11 07:46:44
Tra loi
TuanBlack® 2009-04-29 05:25:05
Tra loi
TuanBlack® 2009-04-30 07:31:45
margin: 0 auto;
position: relative;
}
Site dạo này vắng quá, support lâu :(
Tra loi
Phan Thế Dũng (shilva2010@gmail.com) 2009-07-23 09:03:41
Tra loi
choncon 2009-07-23 04:53:59
Tra loi
tuyentc.pro@gmail.com 2009-12-16 11:16:07
Tra loi
bạn set margin 2010-07-26 14:51:24
margin-right:15px;-->Đẩy container cách bên phải 15px vậy là nó ra giữa.
Tra loi
Y kien