网页布局之九宫格
九宫格虽然嵌套了一些标签,但对于IE6、IE7来讲为了达到预期的美术效果,这中间需要进行权衡;无论怎么讲,他还是很多精华之处。
先看下面的效果,典型的圆角:
虽然圆角有很多的实现方案:
1、使用DIV进行模拟
2、可以使用wekit或moz的一些私有属性进行模拟…
3、使用VML进行处理
4、….
九宫格它的嵌套方式是左、中、右,大致的结构如下:
<div class="mod mod2 …"><!--这里可以附加更多CLASS来改变整体的表现-->
<div class="modelTL">
<div class="modelTR">
<div class="modelTM"></div>
</div>
</div>
<div class="modelML">
<div class="modelMR">
<div class="modelMM"></div>
</div>
</div>
<div class="modelBL">
<div class="modelBR">
<div class="modelBM"></div>
</div>
</div>
</div>
无论怎么变化,样式命名都可以遵循规范:modelTL、modelTR、modelTM、modelML、modelMR、modelMM、modelBL、modelBR、modelBM
最终的结构:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=7" /> <title>九宫格</title> <style type="text/css"> *{margin:0; padding:0;} html, body{font:12px/1.4 sans-serif,Tahoma,Arial,"宋体"; white-space:normal; word-break:break-all; height:100%; } body {background-color:#fff;} img{border:0;} a{outline:none;} input{font-size:12px;} .ipt,textarea{font-size:12px;border:1px solid #ccc; color:#b3b3b3; background:#fff;} i,em,b{font-style:normal; font-weight:normal;} a:hover{color:#000;} .clear{display:block; height:1px; overflow:hidden; clear:both; background:none; border:none;} .model{margin-bottom:5px;} .modelTL,.modelTR,.modelTM,.modelBL,.modelBR,.modelBM{background-image:url(https://cahty.googlecode.com/svn/trunk/images/mod.gif); overflow:hidden;} .modelTL{height:30px; background-repeat:no-repeat; padding-left:2px;} .modelTR{height:30px; background-repeat:no-repeat; background-position:right -80px; padding-right:2px;} .modelTM{height:30px; background-repeat:repeat-x; background-position:0 -40px;} .modelBL{height:11px; background-repeat:no-repeat; padding-left:2px; background-position:0 -120px; clear:both;} .modelBR{height:11px; background-repeat:no-repeat; background-position:right -200px; padding-right:2px;} .modelBM{height:11px; background-repeat:repeat-x; background-position:0 -160px;} .modelML{border-left:1px solid #ACACAC; border-right:1px solid #ACACAC; padding:0 10px; background:#fff; clear:both;} .tit h3{font-size:14px; /*color:#292D88;*/ color:#C6C6C6;} .tit h3 i{font-weight:bold;} .titL,.titR{display:none;} .titM{height:30px; overflow:hidden; line-height:30px;padding:0px 8px;} .titM a{float:right; color:#666; text-decoration:none;} .titM a:hover{color:#000; text-decoration:underline;} .tit h3 span{font-weight:normal; color:#b3b3b3; font-size:12px;} </style> </head> <body> <div class="model" style="width:240px; margin:50px;"> <div class="modelTL"> <div class="modelTR"> <div class="modelTM"> <div class="tit"> <!--<div class="titL"></div> <div class="titR"></div>--> <div class="titM"> <a href="javascript:;">查看更多个人动态</a> <h3>我的动态</h3> </div> </div> </div> </div> </div> <div class="modelML"> <div class="modelMR"> <div class="modelMM"> <div> <p>放内容了....</p> <p>放内容了....</p> <p>放内容了....</p> <p>放内容了....</p> <p>放内容了....</p> <p>放内容了....</p> <p>放内容了....</p> <p>放内容了....</p> <p>放内容了....</p> <p>放内容了....</p> <p>放内容了....</p> <p>放内容了....</p> <p>放内容了....</p> <p>放内容了....</p> <p>放内容了....</p> <p>放内容了....</p> <p>放内容了....</p> <p>放内容了....</p> </div> </div> </div> </div> <div class="modelBL"> <div class="modelBR"> <div class="modelBM"></div> </div> </div> </div> </body> </html>
运行示例: