最窄770px最宽1024px经典布局最典型实用的上中下,并且中间分三列的布局,这个例子有2个特点: 1. 中间三列效果,可以任意实现单列背景色。 IE6.0和FF1.5测试通过 分析: 最外层的wrapper把所有内容都嵌套在里边,整体相对定位。max min已经很好的控制了最窄最宽值,但对IE没有作用。如果没有其他布局的穿插,这一层其实写在body内就可以,少一层嵌套。 #wrapper{ width:auto; border:1px solid #000; min-width:770px; max-width:1024px; text-align:left; margin-left:auto; margin-right:auto; position:relative;} wrapper 下级的 outer header footer 其中header绝对定位,footer 相对定位;outer分别对左右有130px的外边距,这是兼容非IE的关键。 #outer{ margin-left:130px; margin-right:130px; background:silver; border-left:1px solid #000; border-right:1px solid #000; color: #000;} outer 下级的 clearheader outerwrap right clearer clearheader 用做填补header的空白,clearer 是一个常用的填充hack用法。 #clearheader{ height:72px;} outerwrap 内的 centrecontent left clearer 就很简单了,思路类似上边说明。 <!--[if gte IE 5]> 指定IE5.0及版本以上浏览器有效 使用expression方法实现对IE5.0及以上版本的宽度条件控制。 body {width:expression( documentElement.clientWidth < 770 ? (documentElement.clientWidth == 0 ? (body.clientWidth < 770 ? "770" : "auto") : "770px") : "auto" );} 开始只想搞清楚老外是如何实现居中min max的,没想到最后是expression,太失望了,其实这里使用脚本控制更好。另外,老外原文的 Min width of 800px 是错的,CSS定义就是770px,后来截屏确认也是770px。 总的来说这是一个很复杂的布局例子,融合了很多经典用法和定义,同时很传统和实用。类似的复杂布局,四层嵌套实现对于传统布局来说还是比较有优势的。 Referrence: |
沪公网安备 31010102006431号 |