CSS居中

作者: 李欢li | 来源:发表于2018-07-24 14:42 被阅读0次

    垂直居中

    (1)margin:auto法

    css:
    div{
      width: 400px;
      height: 400px;
      position: relative;
      border: 1px solid #465468;
     }
     img{
          position: absolute;
          margin: auto;
          top: 0;
          left: 0;
          right: 0;
          bottom: 0;
     }
    html:
    <div>
     <img src="mm.jpg">
    </div>
    

    定位为上下左右为0,margin:0可以实现脱离文档流的居中.

    (2)margin负值法

    .container{
      width: 500px;
      height: 400px;
      border: 2px solid #379;
      position: relative;
    }
    .inner{
      width: 480px;
      height: 380px;
      background-color: #746;
      position: absolute;
      top: 50%;
      left: 50%;
      margin-top: -190px; /*height的一半*/
      margin-left: -240px; /*width的一半*/
     }
    

    补充:其实这里也可以将marin-top和margin-left负值替换成,
    transform:translateX(-50%)和transform:translateY(-50%)

    (3)table-cell(未脱离文档流的)

    设置父元素的display:table-cell,并且vertical-align:middle,这样子元素可以实现垂直居中。
    css:
    div{
        width: 300px;
        height: 300px;
        border: 3px solid #555;
        display: table-cell;
        vertical-align: middle;
        text-align: center;
    }
    img{
        vertical-align: middle;
    }
    

    (4)利用flex
    将父元素设置为display:flex,并且设置align-items:center;justify-content:center;

    css:
    .container{
          width: 300px;
          height: 200px;
          border: 3px solid #546461;
          display: -webkit-flex;
          display: flex;
          -webkit-align-items: center;
          align-items: center;
          -webkit-justify-content: center;
          justify-content: center;
     }
     .inner{
          border: 3px solid #458761;
          padding: 20px;
     }
    
    

    5,inline 元素可设置line-height的值等于height值,如单行文字垂直居中:

    .container {
       height: 50px;
       line-height: 50px;
    }
    

    水平居中

    1,inline 元素用text-align: center;即可,如下:

    .container {
       text-align: center;
    }
    

    2,block 元素可使用margin: auto;,PC 时代的很多网站都这么搞。

    .container {
        text-align: center; 
    }
    .item {
        width: 1000px;
        margin: auto; 
    }
    

    3,绝对定位元素可结合left和margin实现,但是必须知道宽度。

    .container {
        position: relative;
        width: 500px;
    }
    .item {
        width: 300px;
        height: 100px;
        position: absolute;
        left: 50%;
        margin: -150px;
    }
    

    相关文章

      网友评论

          本文标题:CSS居中

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