如何使用css設(shè)置元素垂直居中

這篇文章主要介紹如何使用css設(shè)置元素垂直居中,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)專注于龍口企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),成都做商城網(wǎng)站。龍口網(wǎng)站建設(shè)公司,為龍口等地區(qū)提供建站服務(wù)。全流程定制設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

html代碼:

<div class="parent">
<div class="child">Text here</div>
</div>

既然設(shè)置子元素的垂直居中,那就要知道父元素的高度,才能知道這所謂的中在哪,對吧?就像你想在一段距離的中間位置站住,那你首先需要知道這段距離有多長,你才能知道中間位置在哪.
注意,我所有的百分比高寬,都是建立在html,body {width: 100%;height: 100%;}這樣的設(shè)置的基礎(chǔ)之上的,如果你沒有這樣設(shè)置,.parent這個(gè)div的父元素又是body,body你又沒有設(shè)置寬高,你就可能看不到效果,.parent這個(gè)div的高寬比是相對于它的父元素的,所以你在使用的時(shí)候需要確定.parent這個(gè)div的父元素設(shè)置了寬度和高度的.

(1) 行內(nèi)文本垂直居中

css代碼:

.parent {
    height: 100px;
    border: 1px solid #ccc; /*設(shè)置border是為了方便查看效果*/
}
.child {
    line-height: 100px;
}

(2) 行內(nèi)非文本垂直居中(以img為例)

html代碼:

<div class="parent">
    <img src="image.png" alt="" />
</div>

css代碼

.parent {
    height: 100px;
    border: 1px solid #ccc; /*設(shè)置border是為了方便查看效果*/
}
.parent img {
    //注意此時(shí)應(yīng)該保證圖片自身的高度或者你設(shè)置的高度小于父元素的200px的行高,不然你看不出來居中的效果.
    line-height: 100px;
}

(3) 未知高度的塊級元素垂直居中
 

html代碼:

<div class="parent">
  <div class="child">
    <!--.child的高度未知,父元素要有高度-->
    sddvsds dfvsdvds
  </div>
</div>

第一種方法(不需要加padding):
 

css代碼:

.parent {
  width: 100%;
  height: 100%;
  position: relative;
  /*display: table;*/
}
.child {
  width: 500px;
  border: 1px solid #ccc; /*設(shè)置border是為了方便查看效果*/
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

第二種方法(不使用transform):
 

css代碼:

.parent {
    position: relative;
    width: 100%;
    height: 100%;
}
.child {
  width: 500px;
  border: 1px solid #ccc;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  margin: auto;
}

第三種方法(需要加padding):
 

css代碼:

#parent {
  padding: 5% 0;
}
#child {
  padding: 10% 0;
}

第四種方法:
 

(使用display: table,此種方法也適用于行內(nèi)文本元素的居中):
 

css代碼:

.parent {
  width: 100%;
  height: 100%;
  display: table;
}
.child {
  display: table-cell;
  vertical-align: middle;
}

第五種方法(flex布局,這里需要考慮兼容性奧!)
 

css 代碼:

.parent {
    width: 100%;
    height: 100%; /*這里一定要寫高度奧!*/
    display: flex;
    align-items: center;
    justify-content: center;
  }

(4) 已知高度的塊級元素垂直居中
 

html代碼:

<div class="parent">
  <div class="child">
    <!--.child的高度已知,父元素高度已知-->
    sddvsds dfvsdvds
  </div>
</div>

css代碼:

#parent {
  height: 300px;
}
#child {
  height: 40px;
  margin-top: 130px; /*這個(gè)只為父元素的高度減去這個(gè)元素的高度除以二計(jì)算得到的*/
  border: 1px solid #ccc;
}

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

當(dāng)前題目:如何使用css設(shè)置元素垂直居中
網(wǎng)頁路徑:http://bm7419.com/article28/jdsjjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、搜索引擎優(yōu)化做網(wǎng)站、網(wǎng)站排名、營銷型網(wǎng)站建設(shè)、商城網(wǎng)站

廣告

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

成都seo排名網(wǎng)站優(yōu)化