首頁  >  文章  >  web前端  >  完美實現浮動元素橫排居中顯示_基礎教程

完美實現浮動元素橫排居中顯示_基礎教程

WBOY
WBOY原創
2016-05-16 12:03:391403瀏覽

經常會遇到這樣的頁面佈局:在一排顯示幾個不同的區域內容,但它們相對於頁面是居中對齊的。注意這些區域內容不只是文字,也許還有圖片或其它元素混合而成。一般這樣的版面我們很容易想到要用浮動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改成

(為.inner寫css:float: left; position: relative; left: -50%;)便可以在.inner裡面寫你想要的浮動排版了(例如:來一個二維碼的圖片,再來一個客服電話及圖標,然後再來一個微博的連結...等等)。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn