首頁 >web前端 >css教學 >完全利用CSS實現元素居中

完全利用CSS實現元素居中

php中世界最好的语言
php中世界最好的语言原創
2018-03-21 10:52:522124瀏覽

這次帶給大家完全利用CSS實現元素居中,利用CSS實現元素居中的注意事項有哪些,下面就是實戰案例,一起來看一下。

前言

記得有次找工作面試的時候,一面試官問了一個CSS方面的問題:如何讓元素在瀏覽器窗口中上下左右居中。我記得當時給了個答案是,先用JS取得瀏覽器視窗高度,然後給body設定line-height為視窗高度並設定text-align:center, 接著再設定該元素display:inline-block和vertical-align:middle。唉,現在想想自己都覺得累。

難道就一定要用到JS嗎?就不能有一種只用CSS方法就能實現元素居中的方法嗎?答案是,有!而且方法遠不止一種!

一、line-height居中法

#父元素:text-align: center; line-height:600px; <a href="http://www.php.cn/wiki/807.html" target="_blank">font-size</a>: 0;

子元素:display: inline-block; vertical-align: middle;
 

#註:600px必須為父元素的高度,這裡還要注意的一點是font-size需設為零,若未寫該屬性將導致元素並不能精確垂直居中。此方法即為我面試時所答的方法,缺點很明顯,父元素高度須確定。 (相容IE8+)

二、table-cell居中法

父元素:display: table-cell; text-align : center; vertical-align: middle;

子元素:display: inline-block;
 

註: 相容IE8+

三、上下左右定位+margin居中法

父元素:<a href="http://www.php.cn/wiki/902.html" target="_blank"> position</a>: relative;

子元素:position: absolute; left: 0; right: 0; top: 0; bottom: 0; margin: auto;
 

附註:相容IE8+

#四、50%定位+margin居中法


##父元素:

position: relative;子元素:position: absolute; left: 50%; top: 50%; margin: -200px 0 0 -200px;

 

註:200px須為此子元素的寬高的一半。例如該子元素寬為100px,高為50px,則margin取值為-25px 0 0 -50px。此方法缺點是須確定子元素寬高。 (相容IE8+)

五、50%定位+translate居中法##父元素:

position: relative;

子元素:position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);

 


附註:

此方法使用了CSS3 transform屬性,適合用於行動端。 (相容IE9+)六、Flexbox居中法

父元素:display: flex; justify-content: center; align -items: center;

 

附註:

此方法使用了Flexbox彈性佈局,行動端相容性也存在很大問題。 (相容IE10+)

七、Flexbox+margin居中法

##父元素:

display: flex;

###子元素:###margin: auto;############################相信看了這篇文章案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章! ######推薦閱讀:###

focus-within的使用詳解

#偽元素::before與::after使用詳解


################################################################都。 #########font-size-adjust屬性如何最佳化網頁排版##########

以上是完全利用CSS實現元素居中的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn