用CSS實現垂直置中的3種方法

來源:互聯網
上載者:User

 使用 CSS 實現垂直置中並不容易。有些方法在一些瀏覽器中無效。下面我們看一下使對象垂直集中的3種不同方法,以及它們各自的優缺點
  方法一:

  這個方法把一些 div 的顯示方式設定為表格,因此我們可以使用表格的 vertical-align property 屬性。
  <div id="wrapper">
  <div id="cell">
  <div class="content">
  Content goes here</div>
  </div>
  </div>
  #wrapper {display:table;}
  #cell {display:table-cell; vertical-align:middle;}

  優點:
  content 可以動態改變高度(不需在 CSS 中定義)。當 wrapper 裡沒有足夠空間時, content 不會被截斷
  缺點:
  Internet Explorer(甚至 IE8 beta)中無效,許多嵌套標籤(其實沒那麼糟糕,另一個專題)

  方法二:

  這個方法使用絕對位置的 div,把它的 top 設定為 50%,top margin 設定為負的 content 高度。這意味著對象必須在 CSS 中指定固定的高度。
  因為有固定高度,或許你想給 content 指定 overflow:auto,這樣如果 content 太多的話,就會出現捲軸,以免content 溢出。
  <div class="content">
  Content goes here</div>
  #content {
  position:absolute;
  top:50%;
  height:240px;
  margin-top:-120px; /* negative half of the height */
  }

  優點:
  適用於所有瀏覽器
  不需要嵌套標籤
  缺點:
  沒有足夠空間時,content 會消失(類似div 在 body 內,當使用者縮小瀏覽器視窗,捲軸不出現的情況)

  方法三:

  這種方法,在 content 元素外插入一個 div。設定此 div height:50%; margin-bottom:-contentheight;。
  content 清除浮動,並顯示在中間。
  <div id="floater">
  <div id="content">
  Content here</div>
  </div>
  #floater {float:left; height:50%; margin-bottom:-120px;}
  #content {clear:both; height:240px; position:relative;}

  優點:
  適用於所有瀏覽器
  沒有足夠空間時(例如:視窗縮小) content 不會被截斷,捲軸出現

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.