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

HTML/XHTML教程
XHTML中不再使用HTML中的一些废弃元素
语义化的HTML结构怎么理解
Web 标准学习 理解结构和表现相分离
html5 标签
HTML5 新事件 小结
HTML5 b和i标记将被赋予真正的语义
HTML是网页制作者必须要学习掌握的
HTML DOCTYPE的缩写
Readonly和Disabled的区别
16进制颜色代码(完全)
H标记要在网页制作中合理使用
abbr标记和acronym标记
知名浏览器对DOCTYPE模式的选择机制
用标准dl,dt,dd标签抛弃table列表
html 标签ID可以是变量
iframe 自适应大小实现代码
HTML5 解析规则分析
HTML减肥 精简HTML标记制作网页
HTML5 File API改善网页上传功能
HTML 5 Reset Stylesheet

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-10   浏览: 82 ::
收藏到网摘: 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>