完美实现浮动元素横排居中显示
经常会遇到这样的页面布局:在一排显示几个不同的区域内容,但它们相对于页面是居中对齐的。注意这些区域内容不只是文字,也许还有图片或者其它元素混合而成。一般这样的布局我们很容易想到要用浮动float,但是怎么样居中对齐而又兼容低端浏览器哪?请接着往下看。
首先看html代码:
<divclass="webFooter"> <divclass="wrap"> <divclass="tabs"> <ul> <li> <ahref="javascript:void(0)">高大上平台</a><em>|</em> </li> <li> <ahref="javascript:void(0)">关于我们</a><em>|</em> </li> <li> <ahref="javascript:void(0)">联系我们</a><em>|</em> </li> <li> <ahref="javascript:void(0)">服务条款</a><em>|</em> </li> <li> <ahref="javascript:void(0)">人才招聘</a><em>|</em> </li> <li> <ahref="javascript:void(0)">帮助中心</a><em>|</em> </li> <li> <ahref="javascript:void(0)">帮助中心</a><em>|</em> </li> <li> <ahref="javascript:void(0)">帮助中心</a><em>|</em> </li> <li> <ahref="javascript:void(0)">帮助中心</a><em>|</em> </li> <li> <ahref="javascript:void(0)">客服中心</a> </li> </ul> </div> </div> </div>
有人会说这些item都是文本,其实把ul换成其它元素(比如div)也是可行的。原理就是.wrap相对于页面居中,宽度是1200px,当然也可以是1000px,宽度自由定义,只要大于内容宽度即可。然后.tabs左浮动并且设置position:relative;left:50%;然后为其内部元素ul设置float:left;position:relative;left:-50%;最后要给.wrap加上overflow:hidden;*position:relative;
css代码如下:
<styletype="text/css"> body,ul,li,ol,dl,dt,dd{padding:0;margin:0;list-style:none;} .webFooter{height:100px;font-size:12px;background:#278ed1;font-family:MicrosoftYaHei;color:#fff;} .webFootera, .webFootera:hover{color:#fff;} .webFooter.wrap{width:1200px;margin-left:auto;margin-right:auto;background:red;overflow:hidden;*position:relative;} .webFooter.tabs{float:left;position:relative;left:50%;margin-top:25px;} .webFooter.tabsul{float:left;position:relative;left:-50%;} .webFooter.tabsli{float:left;line-height:17px;} .webFooter.tabsa{float:left;font-size:14px;} .webFooter.tabsem{float:left;width:20px;height:15px;*line-height:15px;text-align:center;} </style>
解释一下为什么要给.wrap加上overflow:hidden;*position:relative;哪?原因就是内容比较长的话,由于.tabs的left:50%;导致其位置超出了.wrap的宽度范围,当显示屏稍小的时候页面会出现横向滚动条,并且ie7比较顽固,要加*position:relative;才行。有兴趣的端友可以去掉overflow:hidden;*position:relative;试一下,或者改变内容的多少再来试一下,相信会有不同的感觉!
最后,把ul改成<divclass="inner">(为.inner写css:float:left;position:relative;left:-50%;)便可以在.inner里面写你想要的浮动排版了(比如:来一个二维码的图片,再来一个客服电话及图标,然后再来一个微博的链接...等等)。