1. 程式人生 > >行內元素在塊元素裡垂直居中的方法

行內元素在塊元素裡垂直居中的方法

方法1: 設定塊元素的 height,line-height為相同的值:

作用於單行文字,使文字垂直居中顯示;

實現原理: line-height 與 font-size 的計算值之差(在 CSS 中成為“行間距”)分為兩半,分別加到一個文字行內容的頂部和底部。(可以包含這些內容的最小框就是行框。)實現了單行文字居中;

方法2:vertical-align

 適用於在塊元素裡存在大於一個行內元素需要垂直居中時(如圖片和文字需要垂直居中顯示時),可以通過對圖片的標籤或文字的標籤(行內元素)設定vertical-align,可以達到效果;

vertical-align屬性的定義:該屬性定義行內元素的基線相對於該元素所在行的基線

的垂直對齊。允許指定負長度值和百分比值。這會使元素降低而不是升高。在表單元格中,這個屬性會設定單元格框中的單元格內容的對齊方式。

如:<div>

              <span></span>

              <img src="***">

     </div>

span {vertical-align: middle;}  表示圖片的基線相對於span文字的垂直方向上的中部對齊;

方法3:設定display: table-cell;vertical-align: middle;達到垂直居中;

適用於在塊元素記憶體在行內元素,塊元素的混合元素時,且需要將它們垂直居中;

注:此方法存在相容性問題;ie7和ie6都不能識別 display: table-cell;(但是支援display: block等css1的屬性!) 
ie8以及以後版本可以識別;使用display:inline-block屬性代替display:table-cell就完全ok的啦!

方法4: 絕對定位+負外邊距;

使某個行內元素垂直居中,可以先絕對定位,設定top:50%,margin-top:-2/height;(假設元素在頂部;)