方法一:把一些 div 的顯示方式設置爲表格,所以咱們能夠使用表格的 vertical-align屬性。
結構效果以下:
http://jsfiddle.net/chic/4uduzb3t/1/
優勢:不用受內容高度的限制,簡單實現垂直居中;
缺點:不兼容ie6,7.net
方法二:這個方法使用絕對定位的 div,把它的 top 設置爲 50%,margin-top 設置爲負的 content 高度。這意味着對象必須在 CSS 中指定固定的高度。
結構效果以下:
http://jsfiddle.net/chic/4uduzb3t/2/對象
優勢:兼容性好
缺點:必須知道內容盒子的高度才能夠,有了這點限制;圖片
方法三:這個方法和方法二的原理是同樣的。廢話很少說看代碼
http://jsfiddle.net/chic/4uduzb3t/4/get
優缺點和法二同樣,缺點嘛多了個額外的標籤;it
方法四:這個方法使用了一個 position:absolute,有固定寬度和高度的 div。這個 div 被設置爲 top:0; bottom:0;。可是由於它有固定高度,其實並不能和上下都間距爲 0,所以 margin:auto; 會使它居中。使用 margin:auto;使塊級元素垂直居中是很簡單的。
結構效果以下:
http://jsfiddle.net/chic/4uduzb3t/3/io
優勢:很是簡單
缺點:不兼容ie6,7table
方法五:這個方法只能將單行文本置中。只須要簡單地把 line-height 設置爲那個對象的 height 值就能夠使文本居中了。這個就不用實例了,您你看就明白;兼容性
方法六:這個方法的原理是利用元素的vertical-align,區別於方法一的是不限制在table元素中(用於圖片的居中不錯);
結構效果以下:
https://jsfiddle.net/chic/mkd9ufmk/10/原理
優勢:不用受內容高度的限制,兼容性好;
缺點:垂直居中的對象只限在行內元素範圍方法