CSS怎么實(shí)現(xiàn)垂直居中

這篇文章主要介紹CSS怎么實(shí)現(xiàn)垂直居中,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司一直秉承“誠信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個客戶多一個朋友!專注中小微企業(yè)官網(wǎng)定制,成都網(wǎng)站建設(shè)、成都做網(wǎng)站,塑造企業(yè)網(wǎng)絡(luò)形象打造互聯(lián)網(wǎng)企業(yè)效應(yīng)。

1、line-height等于hieght/只設(shè)line-height

這種方法比較適合文字的居中,其核心是設(shè)置行高(line-height)等于包裹他的盒子的高,或者不設(shè)高度只設(shè)行高,這種適合文字居中且高度固定的場景,使用起來比較方便也比較有用。

//html
<div class="middle">555</div>
 
//css
.middle{
  height: 50px;
  line-height: 50px;
  background: red;
}

CSS怎么實(shí)現(xiàn)垂直居中

值得注意的是

如果是行內(nèi)元素,因?yàn)槠錄]有高度,需先把行內(nèi)元素轉(zhuǎn)換為行內(nèi)塊或者塊元素。

2、vertical-align: middle

這種實(shí)現(xiàn)元素的居中需要配合父元素設(shè)有等于自身高度的行高,且此元素是行內(nèi)塊元素。 只有三個條件都具備,才能實(shí)現(xiàn)垂直居中。代碼如下:

//html
<div class="main">
   <div class="middle"></div>
</div>

//css
.main {
  width: 200px;
  height: 300px;
  line-height: 300px;
  background: #dddddd;
}
.middle{
  background: red;
  width: 200px;
  height: 50px;
  display: inline-block;//或者display: inline-table;
  vertical-align: middle;
}

CSS怎么實(shí)現(xiàn)垂直居中

需要注意的是這種方法需要一個固定的行高,且實(shí)現(xiàn)的居中其實(shí)是 近似居中 ,并不是真正意義的居中。

3、絕對定位加負(fù)外邊距

這種方法核心在于先設(shè)置需要居中的元素為絕對定位,在設(shè)置其top:50%; 加上 margin-top等于負(fù)的自身高度的一半來實(shí)現(xiàn)居中。好處是實(shí)現(xiàn)起來比較方便,且父元素的高度可以為百分比,也不用設(shè)行高。代碼如下:

//html
<div class="main">
  <div class="middle"></div>
</div>
  
//css
.main {
  width: 60px;
  height: 10%;
  background: #dddddd;
  position: relative;//父元素設(shè)為相對定位
}
.middle{
  position: absolute;//設(shè)為絕對定位
  top: 50%;//top值為50%
  margin-top: -25%;//設(shè)margin-top為元素高度的一半
  width: 60px;
  height: 50%;
  background: red;
}

CSS怎么實(shí)現(xiàn)垂直居中

4、絕對定位加margin:auto

先上代碼:

//html
<div class="main">
  <div class="middle"></div>
</div>
  
//css
.main {
  width: 60px;
  height: 10%;
  background: #dddddd;
  position: relative;//父元素設(shè)為相對定位
}
.middle{
  width: 30%;
  height: 50%;
  position: absolute;//設(shè)為絕對定位
  top: 0;
  bottom: 0;//top、bottom設(shè)0即可,
  left: 0;//如果left、right也設(shè)為0則可實(shí)現(xiàn)水平垂直都居中
  right: 0;
  margin:auto;
  background: red;
}

這種方法好處是 不止可以實(shí)現(xiàn)垂直居中,還可以實(shí)現(xiàn)水平居中 ,壞處是在網(wǎng)絡(luò)或性能不好的情況下 會有盒子不直接定到位的情況 ,造成用戶體驗(yàn)不好。

5、flex布局

flex布局可以很方便的實(shí)現(xiàn)垂直與水平居中,好處很多,在移動端使用比較廣泛,壞處就是 瀏覽器兼容性不好 。代碼如下:

//html
<div class="main">
  <div class="middle"></div>
</div>
 
//css
.main {
  width: 60px;
  height: 10%;
  background: #dddddd;
  display: flex;//設(shè)為flex
  justify-content: center;//水平居中
  align-items: center;//垂直居中
}
.middle{
  width: 30%;
  height: 50%;
  background: red;
}

CSS怎么實(shí)現(xiàn)垂直居中

以上是“CSS怎么實(shí)現(xiàn)垂直居中”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

本文名稱:CSS怎么實(shí)現(xiàn)垂直居中
網(wǎng)頁網(wǎng)址:http://bm7419.com/article8/jdejop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站全網(wǎng)營銷推廣App開發(fā)、手機(jī)網(wǎng)站建設(shè)、電子商務(wù)、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)