經常會遇到這樣的頁面佈局:在一排顯示幾個不同的區域內容,但它們相對於頁面是居中對齊的。注意這些區域內容不只是文字,也許還有圖片或其它元素混合而成。一般這樣的版面我們很容易想到要用浮動float,但是怎麼樣居中對齊而又相容於低階瀏覽器哪?請接著往下看。
先看html程式碼:
<div class="webfooter"> <div class="wrap"> <div class="tabs"> <ul> <li> <a href="javascript:void(0)">高大上平台</a><em>|</em> </li> <li> <a href="javascript:void(0)">关于我们</a><em>|</em> </li> <li> <a href="javascript:void(0)">联系我们</a><em>|</em> </li> <li> <a href="javascript:void(0)">服务条款</a><em>|</em> </li> <li> <a href="javascript:void(0)">人才招聘</a><em>|</em> </li> <li> <a href="javascript:void(0)">帮助中心</a><em>|</em> </li> <li> <a href="javascript:void(0)">帮助中心</a><em>|</em> </li> <li> <a href="javascript:void(0)">帮助中心</a><em>|</em> </li> <li> <a href="javascript:void(0)">帮助中心</a><em>|</em> </li> <li> <a href="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程式碼如下:
<style type="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: Microsoft YaHei; color: #fff;} .webFooter a, .webFooter a: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 .tabs ul {float: left; position: relative; left: -50%;} .webFooter .tabs li {float: left; line-height: 17px;} .webFooter .tabs a {float: left; font-size: 14px;} .webFooter .tabs em {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改成