如图所示,前后灰色列宽度一定,为左右边距;中间三列为网页内容区,整体居中显示,其中橙色的两列分别相当于左边栏和右边栏,宽度会随浏览器窗口的变化而变化,蓝色列宽度则不变。
如何用html+css来实现?
楼下有人已经给了很好的回答,非常感谢!用的是css3的新特性。
我想知道如果用css2,应该怎么实现?
IE9以上及标准浏览器就不说了,应该是很容易实现的。
IE6-8我写了个简单方案,初步测试了OK,欢迎讨论。
http://jsfiddle.net/ggwbzz/h2Xbd/
http://jsfiddle.net/BgV78/
靠,看了上面的答案,尼玛这是个三栏布局啊,说什么五列布局搞得好高端的样子{{|└(>o< )┘|}}
题主的标题是五列布局,可是为什么我只看到了三列布局。左右边距按理说不等价于两列布局。
说什么五列布局搞得好高端的样子
左右边距按理说不等价于两列布局
完全同意
多放两个div不就很简单么
CSS2的实现,兼容IE6+:
http://jsfiddle.net/humphry/kynUL/
把http://jsfiddle.net/humphry/kynUL/show/
拖到地址栏看看吧。
操作的时候注意以下几点:
-
.sidebar-inner-l
和.sidebar-inner-r
的左右padding加起来等于.main
的宽度。 -
.main
的right值等于负.sidebar-inner-l
的右padding值 - 这种方式仅仅能让
.main
基于页面的中轴定位 - 没有考虑水平宽度过窄的情形,一般而言有个最小值(如980px)。
@NatureFeng 兄已经给出了完美答案,我再给题主介绍一篇博文帮助理解, @classicemi 兄的好文:
《使用 CSS3 Flexible Boxes 布局》
http://jsfiddle.net/PAzv5/
低耦合版本,易修改, IE6+.
没什么特殊要求和技巧, 顶多仅有BFC.