美文网首页
七种方式实现垂直居中

七种方式实现垂直居中

作者: 浪味仙儿啊 | 来源:发表于2020-07-03 19:10 被阅读0次

    一、table自带功能

    html

    <body>
      <table class="parent">
        <tr>
          <td class="child">
           一串文字一串文字一串文字一串文字一串文字一串文字一串文字一串文字一串文字一串文字
          </td>
        </tr>
      </table>
    </body>
    

    css

    .parent{
      border: 1px solid red;
      height: 600px;
    }
    
    .child{
      border: 1px solid green;
    }
    

    二、100%高度的after、before加上inline block

    html

    <body>
      <div class="parent">
        <span class=before></span><div class="child">
          一串文字一串文字一串文字一串文字一串文字一串文字一串文字一串文字一串文字一串文字 
        </div><span class=after></span>
      </div>
    </body>
    

    css

    .parent{
      border: 3px solid red;
      height: 600px;
      text-align: center;
    }
    
     .child{
      border: 3px solid black;
      display: inline-block;
      width: 300px;
      vertical-align: middle;
    }
    
    .parent .before{
      outline: 3px solid red;
      display: inline-block;
      height: 100%;
      vertical-align: middle;
    }
    .parent .after{
      outline: 3px solid red;
      display: inline-block;
      height: 100%;
      vertical-align: middle;
     } 
    

    三、div装成table

    html

    <body>
      <div class="table">
          <div class="td">
            <div class="child">
              一串文字一串文字一串文字一串文字一串文字一串文字一串文字一串文字一串文字一串文字
            </div>
        </div>
      </div>
    </body>
    

    css

    div.table{
      display: table;
      border: 1px solid red;
      height: 600px;
    }
    div.tr{
      display: table-row;
      border: 1px solid green;
    }
    
    div.td{
      display: table-cell;
      border: 1px solid blue;
      vertical-align: middle;
    }
    .child{
      border: 10px solid black;
    }
    

    四、margin-top:-50px

    html

    <body>
      <div class="parent">
        <div class="child">
          一串文字一串文字一串文字一串文字一串文字一串文字一串文字一串文字一串文字一串文字
        </div>
      </div>
    </body>
    

    css

    .parent{
      height: 600px;
      border: 1px solid red;
      position: relative;
    }
    .child{
      border: 1px solid green;
      width: 300px;
      position: absolute;
      top: 50%;
      left: 50%;
      margin-left: -150px;
      height: 100px;
      margin-top: -50px;
    }
    

    五、transform: translate(-50%,-50%)

    html

    <body>
      <div class="parent">
        <div class="child">
          一串文字一串文字一串文字一串文字一串文字一串文字一串文字一串文字一串文字一串文字
        </div>
      </div>
    </body>
    

    css

    .parent{
      height: 600px;
      border: 1px solid red;
      position: relative;
    }
    .child{
      border: 1px solid green;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%,-50%);
    }
    

    六、position: absolute; margin: auto;

    html

    <body>
      <div class="parent">
        <div class="child">
          一串文字一串文字一串文字一串文字一串文字一串文字一串文字一串文字一串文字一串文字
        </div>
      </div>
    </body>
    

    css

    .parent{
      height: 600px;
      border: 1px solid red;
      position: relative;
    }
    .child{
      border: 1px solid green;
      position: absolute;
      width: 300px;
      height: 200px;
      margin: auto;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
    }
    

    七、flex布局 justify-content: center; align-items: center;

    html

    <body>
      <div class="parent">
        <div class="child">
          一串文字一串文字一串文字一串文字一串文字一串文字一串文字一串文字一串文字一串文字
        </div>
      </div>
    </body>
    

    css

    .parent{
      height: 600px;
      border: 3px solid red;
      
      display: flex;
      justify-content: center;
      align-items: center;
    }
    .child{
      border: 3px solid green;
      width: 300px;
    }
    

    相关文章

      网友评论

          本文标题:七种方式实现垂直居中

          本文链接:https://www.haomeiwen.com/subject/lakeqktx.html