当前位置: 首页 > 图文教程 > 网页制作 > HTML/XHTML教程 > 左中右3栏布局中最先显示中栏内容的方法

HTML/XHTML教程
CSS 循序渐进(四)表里春秋
精通 CSS 滤镜(五)
让css使网页图片半透明
实现页面图片阴影特效
发现CSS控件的好处
用CSS缩写给你的网站加速
CSS在IE和Nascape的显示差别
利用CSS,不通过replace替换标引HTML标记
拒绝单调 让网页超链接拥有多姿多彩的下划线
对CSS类及id的规范化命名
利用css里expression来实现界面对象的批量控制
利用CSS控制打印
第一章 CSS的基本认识
第二章 CSS的应用方式
第三章 CSS的应用补充
第四章 颜色背景的CSS
第五章 文字性质的CSS
第六章 区块性质的CSS
HTML之其他标记
HTML之链接标记

HTML/XHTML教程 中的 左中右3栏布局中最先显示中栏内容的方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-10   浏览: 76 ::
收藏到网摘: n/a

作者:dodo [网站重构]译者之一,原文在这里:http://www.donews.net/dodo/archive/2005/05/16/382248.aspx,需要转载的先联系作者。

这个IDEA来自KESO
今天KESO说,对于一个左中右3栏布局的页面,比如home.donews.com,用户最想看到的是中栏的信息,左右2栏其实网站的相关信息的导航入口,所以中栏信息是最重要的,应该在页面显示顺序上优先于左右2栏。或者也可以这么说就是要将一个页面的最重要的信息优先于页面其他元素显示,无论是3栏还是2栏布局,说得很对。
浏览器显示页面是一行一行的按顺序执行代码,也就是说写在前面的先执行显示,而对于左中右3栏布局的设计,代码要么是从左-->中-->右来书写,要么就是到过来从右-->中-->左来书写,要做到KESO说的效果,那首先要书写的是中栏的代码。所以我首先定义了一个id=m的DIV,并且padding-left:150px,定义这个是为了给左栏留出140PX的显示位置,然后再在这个DIV里面嵌套定义一个id=middle的DIV,我用position:absolute的属性(绝对定位);然后再定义左栏left和右栏right。用position:absolute的属性有一个不好的地方就是它象photoshop里的层一样,它的自动延伸并不会带动整个布局的延伸,所以会遮住一些页面元素,比如我们通常会在网站的最下面写上一些copyright的信息,如果用先显示中栏的这种方法,如果不做处理的话,这些信息会被遮盖住。处理的办法就是使用javascript,让左右2栏的高度随中栏一起自动延伸。
下面是这个实现的代码,有兴趣的朋友可以COPY回去试试,也欢迎留言交流。
BTW:这次和刘韧,KESO改版DONEWS.COM,获益菲浅,他们才是真正懂用户需求,懂网站的人。

<!DOCTYPE html PUBLIC "-//W。3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="gb2312">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta http-equiv="Content-Language" content="gb2312" />
<meta content="all" name="robots" />
<meta name="author" content="designed by dodo at donews.com" />
<title>WEB标准网站设计实例:左中右3栏布局中最先显示中栏内容的方法</title>
</head>

<style>
body{font-size:12px;}
div{color:#fff}

#m{padding-left:150px}
#middle{position:absolute;
background:red;width:468px;
margin-right: auto;
margin-left: auto;
padding: 0px;
}

#left{float:left;background:green;width:140px;height:30px}
#right{float:right;background:blue;width:140px}

#all{width:770px;
margin-right: auto;
margin-left: auto;
padding: 0px;
color: #000;
background:#ffa200;}
#footer{clear:both;background:#808080;color:#fff}
</style>
<body>
<div id="all">

<div id="m">
<div id="middle">

中栏<br />
·IT人的出路系列思考(三): 提升学习能力与可持 ..  [陈国华]   11日
·alexa上,黑客的下一个目标是谁?  [阮颖]   11日
·IT人的出路系列思考(二):思维创新战略与谋定 ..  [陈国华]   11日
·IT人的出路系列思考(一):项目与打工  [陈国华]   11日
·希捷加入后的新一代笔记本选购规则  [新华美通]   11日
·木子美:挣扎出历史的海面透一口气  [周晶波]   11日
·首家推出出租房源、二手房源的RSS订阅服务  [鳖兔鳖]   11日
·TOM 在线公布二○○五年第一季度之业绩报告  [新华美通]   11日
·黄华:我们有必要开会吗?  [黄华]   11日
·IT人的出路系列思考(三): 提升学习能力与可持 ..  [陈国华]   11日
·alexa上,黑客的下一个目标是谁?  [阮颖]   11日
·IT人的出路系列思考(二):思维创新战略与谋定 ..  [陈国华]   11日
·IT人的出路系列思考(一):项目与打工  [陈国华]   11日
·希捷加入后的新一代笔记本选购规则  [新华美通]   11日
·木子美:挣扎出历史的海面透一口气  [周晶波]   11日
·首家推出出租房源、二手房源的RSS订阅服务  [鳖兔鳖]   11日
·TOM 在线公布二○○五年第一季度之业绩报告  [新华美通]   11日
·黄华:我们有必要开会吗?  [黄华]   11日

</div>
</div>

<div id="left">左栏</div>
<div id="right">右栏<br>
</div>
<div id="footer">网页底部</div>
</div>


<script language="javascript">
document.getElementById("left").style.height=document.getElementById("middle").scrollHeight+"px"
document.getElementById("right").style.height=document.getElementById("middle").scrollHeight+"px"
</script>
</body>
</html>