结合html和css制作页面的布局结构,CSS Div网页布局中的结构与表现

本文介绍了如何使用XHTML和CSS实现网页布局中的结构与表现分离,通过实例展示了如何调整不同内容区块的位置,以达到更好的用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Web标准中一个很重要的概念就是强调页面的结构与表现分离。说的通俗一点就是XHTML中应该没有样式化的东西,而且Web在浏览器中除内容外都应该由CSS表现,这包括布局与其它样式。一旦一个标准的XHTML代码写完之后,那么CSS可以实现其实百变面孔。其实XHTML是一个演员,CSS是编剧,XHTML演什么角色,都由CSS来决定的。

这听起来似乎有点理想主义,实现起来似乎就没有那么容易了。不过我还是想通过一个简单的例子来说问题。

我们在设计页面的时候遵循的一个原则就是:重要内容首先加载,将要内容稍后加载。因此我们会发现像我的博客一样,主内容代码是写在侧边栏前面的。但是我们却可以通过CSS使侧边栏位于左侧,如果不看代码只看在页面中的表现,这和先加载侧边栏没有什么不同。这就是结构和表现分离的好处。

假设我们有一个三栏的布局,其中两个是主内容区域,一个是侧边栏的次内容区域。那么按照上面的原则,我们应该把两个主内容区域的代码写在侧边栏次内容区域的前面,这样浏览器才会首先加载他们。那么我们就要构建下面的代码段:

前面已经说过,结构和表现分离的好处就是我们可以任意地安排这三栏的位置。比如我们要把“sideContent”放在页面的左侧,主内容区位于中间和左侧,同时栏与栏之间有10px的间距。我们设定页面宽度为760px,扣除两个10px的间隔,那么内容区的共有740px的宽度,我们可以设定请内容区为290px,侧边栏为160px。于是有

#primaryContent {

float:left;

width:290px;

height:300px;

}

#secondaryContent {

float:left;

width:290px;

height:300px;

}

#sideContent {

float:left;

width:160px;

height:300px;

}

注:为了演示方便没有优化代码。

float:left为使三个div元素水平对齐的常用方法。这样我们预览页面的时候,三个div便会出现在同一行内。

接下来,我们要移动它们的位置。把primaryContent移动到160 10px的位置(10px)为间距,那么可以设置为

margin-left:170px;

把sendcondary依此向右移动,和primaryContent的距离也是10px,需要

margin-left:10px;

那么这个时sideContent已经被挤出content了,并且其左边缘正好是content的右边缘,因此我们要使用负的边距把它拉回到正常位置:

margin-left:-760px;

这样位置就正好了。

(自己查看运行效果)

div css布局中的结构和表现分离

body { font-size:middle;font-family:Tahoma,Arial, Helvetica, sans-serif,"雅黑","宋体"; background-color:#999;}

div { background-color:#ccc; }

#wrap {

width:760px;

padding:10px;

margin:0 auto;

background-color:#fff;

}

#header {

height:100px;

}

#content {

height:300px;

margin-top:10px;

background-color:#fff;

}

#primaryContent {

float:left;

height:300px;

width:290px;

margin-left:170px;

}

#secondaryContent {

float:left;

height:300px;

width:290px;

margin-left:10px;

}

#sideContent {

float:left;

height:300px;

width:160px;

margin-left:-760px;

}

#footer {

height:100px;

margin-top:10px;

}

pre { font-family:tahoma; }

主内容区1

这是主内容区,为了增强用户体验,使用主要内容首先显示,它往往在放在其它内容的前面。

 
    

#primaryContent {

float:left;

height:300px;

width:290px;

margin-left:170px;

}

主内容区2

这是主内容区,为了增强用户体验,使用主要内容首先显示,它往往在放在其它内容的前面。
 
    

#secondaryContent {

float:left;

height:300px;

width:290px;

margin-left:10px;

}

次内容区
这是将要内容区域,它往往出现在页面的后部。
 
    

#sideContent {

float:left;

height:300px;

width:160px;

margin-left:-760px;

}

(修正bug,请使用Internet Explorer 7、Firefox等浏览器查看)

对于两样一段XHTML代码,我们只需要修改CSS样式就可以实现多种布局:

代码1(自己查看运行效果)

div css布局中的结构和表现分离

body { font-size:middle;font-family:Tahoma,Arial, Helvetica, sans-serif,"雅黑","宋体"; background-color:#999;}

div { background-color:#ccc; }

#wrap {

width:760px;

padding:10px;

margin:0 auto;

background-color:#fff;

}

#header {

height:100px;

}

#content {

height:300px;

margin-top:10px;

background-color:#fff;

}

#primaryContent {

float:left;

height:300px;

width:290px;

}

#secondaryContent {

float:left;

height:300px;

width:290px;

margin-left:180px;

}

#sideContent {

float:left;

height:300px;

width:160px;

margin-left:-460px;

}

#footer {

height:100px;

margin-top:10px;

}

pre { font-family:tahoma; }

header

主内容区1

这是主内容区,为了增强用户体验,使用主要内容首先显示,它往往在放在其它内容的前面。

 
    

#primaryContent {

float:left;

height:300px;

width:290px;

}

主内容区2

这是主内容区,为了增强用户体验,使用主要内容首先显示,它往往在放在其它内容的前面。
 
    

#secondaryContent {

float:left;

height:300px;

width:290px;

margin-left:180px;

}

次内容区
这是将要内容区域,它往往出现在页面的后部。
 
    

#sideContent {

float:left;

height:300px;

width:160px;

margin-left:-460px;

}

代码2(自己查看运行效果)

div css布局中的结构和表现分离

body { font-size:middle;font-family:Tahoma,Arial, Helvetica, sans-serif,"雅黑","宋体"; background-color:#999;}

div { background-color:#ccc; }

#wrap {

width:760px;

padding:10px;

margin:0 auto;

background-color:#fff;

}

#header {

height:100px;

}

#content {

height:300px;

margin-top:10px;

background-color:#fff;

}

#primaryContent {

float:left;

height:300px;

width:290px;

}

#secondaryContent {

float:left;

height:300px;

width:290px;

margin-left:10px;

}

#sideContent {

float:left;

height:300px;

width:160px;

margin-left:10px;

}

#footer {

height:100px;

margin-top:10px;

}

pre { font-family:tahoma; }

header

主内容区1

这是主内容区,为了增强用户体验,使用主要内容首先显示,它往往在放在其它内容的前面。

 
    

#primaryContent {

float:left;

height:300px;

width:290px;

}

主内容区2

这是主内容区,为了增强用户体验,使用主要内容首先显示,它往往在放在其它内容的前面。
 
    

#secondaryContent {

float:left;

height:300px;

width:290px;

margin-left:10px;

}

次内容区
这是将要内容区域,它往往出现在页面的后部。
 
    

#sideContent {

float:left;

height:300px;

width:160px;

margin-left:10px;

}

其实还能实现更复杂的布局。我举这个例子当然不是在讲布局的技巧,只是说说为什么一下强调结构与表现分例,光说不练可不好理解它的真谛。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值