普通元素垂直水平居中原理、單行多行文字垂直水平居中

一、普通元素三種垂直水平居中

如圖:

image.png
<div class="main"> //html結(jié)構(gòu)
    <div class="content"></div>
</div>
.main{   //main的樣式
     width: 100px;
     height: 100px;
     background-color: #ff7f50;
     display: flex;
     align-items: center;
     justify-content: center;
}
  1. absolute小技巧</b>
.content1{
    width: 100px;
    height: 100px;
    background-color: #20b2aa;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
}

原理:利用絕對定位元素的盒模型特性,在偏移屬性為確定值的基礎上,設置margin:auto。

  1. translate()函數(shù)
.content2{
    width: 100px;
    height: 100px;
    background-color: #20b2aa;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
}

原理:利用絕對定位元素的偏移屬性和translate()函數(shù)的自身偏移達到水平垂直居中的效果[注意]IE9-瀏覽器不支持。

  1. 使用flex
.main{
    width: 100px;
    height: 100px;
    background-color: #ff7f50;
    display: flex;
    align-items: center;
    justify-content: center;
}

原理:在伸縮容器上使用主軸對齊justify-content和側(cè)軸對齊align-items。

二、文字居中垂直水平居中
image.png
<div class="middle-box"> //html結(jié)構(gòu)
    <div class="middle-inner">
        <p>good good study,</p>
        <p>day day up!</p>
    </div>
</div>
  • 1 單行文字垂直居中

    text-align: center;
    line-height = height;
    
  • 2 多行文字垂直水平居中

    1. 第一種display:table的方法

      .middle-box {
          display: table;
          height: 200px;
          width: 200px;
          background-color: #20B2AA;
      }
      
      .middle-inner {
         display: table-cell;
         vertical-align: middle;
         text-align: center;
      }
      缺點就是不兼容ie6、ie7.怎么兼容呢?
      兩者寫法:
       1、條件語句寫法
       <!--[if lt IE 8]>
       <style>
          .middle-inner { position: absolute; top:50%;}
          .middle-inner p {position: relative; top: -50%}
       </style>
       <![endif]-->
       2、ie hack寫法
       .middle-box {
           display: table;
           height: 300px;
           border: 1px solid #ff0000;
           width: 400px;
           margin: 0 auto;
           position: relative;
       }
      
       .middle-inner {
           display: table-cell;
           vertical-align: middle;
           *position: absolute;
           *top: 50%;
           *left: 50%;
           width: 100%;
           text-align: center;
       }
      
       .middle-inner p {
           position: relative;
           *top: -50%;
           *left: -50%;
       }
      
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 收聽音頻,戳鏈接,舊號itclan已暫停使用,歡迎關注微信itclanCoder公眾號可收聽更多音頻 前言 關于網(wǎng)...
    itclanCoder閱讀 8,363評論 3 30
  • 1.絕對定位居中技術 我們一直用margin:auto實現(xiàn)水平居中,而一直認為margin:auto不能實現(xiàn)垂直居...
    DecadeHeart閱讀 1,669評論 0 3
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 14,204評論 1 92
  • 有人說,20歲是一個女子最美好的年華,如一朵嬌艷欲滴、微微綻放的玫瑰,誘人采擷;有人說,30歲才是一個女子最美好的...
    松青月冷閱讀 288評論 0 0
  • 心,在無盡的等待與期盼中,慢慢冷卻……
    一海悠藍閱讀 410評論 0 0

友情鏈接更多精彩內(nèi)容