前端開發入門到實戰:css實現div垂直水平居中的2種常用方法

智雲程式設計發表於2019-05-30

方法一:

利用vertical-align:middle進行垂直方向上的居中對齊,此方法需要滿足的條件:

  1. 設定父元素的行高line-height等於父元素height的高度
  2. 子元素必須是行內塊級元素display:inline-block;
  3. 子元素設定vertical-align:middle
  4. 此方法在開發中不能右浮動(不能靠右邊)

下方是完整程式碼,可以新建一個HTML檔案進行測試(綠色的盒子):

<html>
<head>
<title>導航條</title>
<meta charset="utf-8" />
</head>
<style>
*{
    margin:0;
    padding:0;
}
.div1{
  height:200px;
  background:yellow;
  /*行高等於容器高度*/
  line-height:200px;
}
.div2{
    width:100px;
    height:100px;    
    background:green;
    /*行內塊級元素*/
    display:inline-block;
    /*中線和父元素基線上方出對其,參考字母"x"*/
    vertical-align:middle;
}
.div3{
    width:100px;
    height:100px;    
    background:red;
    display:inline-block;
}
</style>
<body>
<div class="div1">
xxxxxxxxxxx
    <div class="div2" >
    </div>
    <div class="div3" >
    </div>
</div>
</body>
</html>

為了幫助大家讓學習變得輕鬆、高效,給大家免費分享一大批資料,幫助大家在成為前端工程師,乃至全棧工程師的路上披荊斬棘。在這裡給大家推薦一個前端全棧學習qun:784783012


當真正開始學習的時候難免不知道從哪入手,導致效率低下影響繼續學習的信心。
但最重要的是不知道哪些技術需要重點掌握,學習時頻繁踩坑,最終浪費大量時間,所以有效資源還是很有必要的。

方法二:

這種方法比較暴力,利用定位解決:

  1. 父元素開啟相對定位
  2. 子元素絕對定位
  3. 子元素先向下移動父元素的50%,此時子元素的頂部與父元素的中線對齊了
  4. 子元素再向上移動自身高度"height"的一半,此時子元素的中線和父元素的中線對齊了
  5. 此方法可以右對齊,設定子元素right:0px;即可

下方是完整程式碼,可以新建一個HTML檔案進行測試(綠色的盒子):

<html>
<head>
<title>導航條</title>
<meta charset="utf-8" />
</head>
<style>
*{
    margin:0;
    padding:0;
}
.div1{
  height:200px;
  background:yellow;
  /*相對定位開啟*/
  position:relative;
}
.div2{
    width:100px;
    height:100px;    
    background:green;
    /*絕對定位*/
    position:absolute;
    /*可以右對齊*/
    right:0px;
    /*先向下移動父元素的50%,此時子元素的頂部與父元素的中線對齊了*/
    top:50%;
    /*再向上移動自身高度"height"的一半,此時子元素的中線和父元素的中線對齊了*/
    margin-top:-50px
}
</style>
<body>
<div class="div1">
    <div class="div2" >
    </div>
</div>
</body>
</html>


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901074/viewspace-2646274/,如需轉載,請註明出處,否則將追究法律責任。

相關文章