固定宽度三列布局
这很基础,我们直接看代码便能明白:
XML/HTML Code复制内容到剪贴板 <divid="wrapper"> <divid="header">header</div> <divid="body"class="cls"> <divid="aside"> <divclass="inner"> aside <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> </div> </div> <divid="content"class="cls"> <divid="main"> <divclass="inner"> main <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> </div> </div> <divid="content-aside"> <divclass="inner"> content-aside <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> </div> </div> </div> </div> <divid="footer">footer</div> </div> CSS Code复制内容到剪贴板 #header{width:980px;height:90px;margin:0auto;background:#f60;} #body{width:980px;margin:0auto;} #aside{float:left;width:240px;background:#ccc;} #content{margin-left:240px;} #main{float:left;width:540px;background:pink;} #content-aside{float:left;width:200px;background:orange;} #footer{width:980px;height:90px;margin:0auto;background:#08f;}
实例:实现三列图片等宽等间距布局
每个图片块左浮动,宽30%,左外边距2.5%:
100%=(2.5%+30%)+(2.5%+30%)+(2.5%+30%)+2.5%
CSS Code复制内容到剪贴板 <!DOCTYPEhtml> <html> <head> <metacharset="utf-8"> <metaname="viewport"content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0"> <title>三列图片等宽布局</title> <style> *{ margin:0; padding:0; } img{ display:block; width:30%; margin:2.5%002.5%; float:left; } </style> </head> <body> <div> <imgsrc="byd.jpg"/><imgsrc="byd.jpg"/><imgsrc="byd.jpg"/> <imgsrc="byd.jpg"/><imgsrc="byd.jpg"/><imgsrc="byd.jpg"/> <imgsrc="byd.jpg"/><imgsrc="byd.jpg"/><imgsrc="byd.jpg"/> </div> </body> </html>
width: 30%; 表示父级元素宽度的30%.
height: 30%; 如果没有设置父级元素的具体高度,那么这个height是没有效果的.
要实现响应式的正方形,可以使用单位vw(Viewport Width):
CSS Code复制内容到剪贴板 .square{ width:30%; height:30vw; background:url("byd.jpg")no-repeatscrollcenter0transparent; background-size:100%100%; margin:2.5%002.5%; float:left; }
不过需要注意的是,低版本IE和低版本Android/iOS浏览器都不支持视窗(viewport)单位.
或者使用JS根据宽设置高,保证兼容性:
JavaScript Code复制内容到剪贴板 <scriptsrc="jquery.js"></script> <script> $(document).ready(function(){ $("img").height($("img").width()); }); $(window).resize(function(){ $("img").height($("img").width()); }); </script>
百分比布局也可以看做是一种响应式布局.
简单实用的 百分比布局 还是很适合手机WAP页面布局的:
CSS Code复制内容到剪贴板 min-width:320px; max-width:980px; width:100%; overflow-x:hidden; margin:0auto;
最小宽度320px,最大宽度980px,在320px和980px之间自动适应宽度,看起来还行.
在<img>标签里只用设置width属性百分比值,比如width="40%",不用设置height属性,这样图片能够自行按原比例缩放.
容器里面的块,同样可以用百分比布局,比如左边的60%,右边的40%.