一、效果
二、HTML结构
<!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">
<head>
<title>典型的DIV+CSS布局</title>
<link href="css/layout.css" rel="stylesheet" type="text/css" />
<style type="text/css">
</style>
</head>
<body>
<div id="wrap">
<div id="header">
<h1>典型的DIV+CSS布局</h1>
</div>
<div id="menu">
</div>
<div id="container">
<div id="side">
</div>
<div id="content">
</div>
</div>
<div id="footer">
</div>
</div>
</body>
</html>
三、CSS
*{
margin:0;
padding:0;
}
body {
text-align:center;
background:url(bg.jpg);
}
a:link { color: #A0410D; text-decoration:none; }
a:visited { color: #A0410D; text-decoration:none; }
a:active { color: #A0410D; cursor:hand; text-decoration:none; }
a:hover { color: #FFCC17; cursor:hand; text-decoration:"underline"; }
h1,h2,h3,h4
{
color:#C36C2D;
}
#wrap{
width:800px;
margin:0 auto;
text-align:left;
}
#header{
height:118px;
text-align:center;
background:#FDE38F url(logo.jpg) no-repeat;
}
#header h1
{
line-height:118px;
}
#menu
{
height:22px;
background:url(bar.jpg) repeat-x;
}
#container
{
float:left;
background:#A0410D;
}
#side
{
width:200px;
float:left;
}
#content
{
width:600px;
float:left;
height:400px;
background:white;
}
#footer
{
clear:both;
height:22px;
text-align:right;
}
#footer p
{
line-height:22px;
}
【说明】
一、*{ margin:0; padding:0;}是一种不严格的样式重置,做自己的网站,一般都需要一个reset.css,reset.css内容
二、body中设置了text-aling:center,wrap中又设置了text-align:left,看着有点多余,这是为了解决老版本浏览器兼容问题。对于新版本的浏览器,wrap的一个margin:0 auto;就解决居中的问题了。
三、div#header中的标题h1垂直居中问题,可设置h1的line-height:118px,即h1的行高与div#header的高度一致。
四、side和content两个div并列,可以采用绝对定位的方式,也可以象本例一样,采用浮动的方式,采用浮动方式时,由于两个div设置了float:left;属性,会脱离标准流,这时,为了保证container仍然能包围这两个div,也设置成了浮动的方式。
五、由于side、content和content都设置为浮动方式,后面紧跟的footer,需要设置clear:both;清除浮动的影响,这是一个习惯。
六、设置两个并列的div背景色,存在一个问题,就是,通常content的高度都是随内容变化的,这时,很难保证side的高度与content一致。解决的办法就是,把side的背景色设置在container上,side不设背景色,content因为要存放网页内容,一般背景色需要设置淡一点,或者干脆设置为白色。
七、固定宽度且居中的布局,也可以运用绝对定位属性,具体可参考典型的DIV+CSS布局——左中右版式。
【结束语】
对于程序员来说,前台,一点都不懂,甚至连个简单界面都做不了,的确会打击人的信心,做后台代码,也会没有底气。而如果说,要求程序员做漂亮的前台界面,也是不现实的,做界面,要有深厚的艺术修养,要有美工的底子,要有丰富的形象思维能力,这和程序员所擅长的逻辑思维是有冲突的,在这一点上,程序员,对自己要有一个良好的定位。个人认为,也许,CSS,是后台代码和前台界面的接口吧......
程序员应该懂得结构、内容与表现分离的Web标准设计思想,掌握基本的HTML结构,掌握基本的CSS设计,并能用简单的颜色和少量的图片构建一个符合Web标准的界面,算做是一个Demo的吧,HTML结构要合理,CSS要规范,在这基础上,美工和前台们才能发挥他们的想象,构建真正漂亮的界面,这时,并不会影响界面的结构和内容。
【参考文献】
李卓群.网页设计实例教程[M].北京:清华大学出版社,2010:194-197.