水平垂直居中的五种方式

114 阅读1分钟

CSS垂直居中的几种方式

  • absolute and -margin 需要设置盒子的宽度和高度
.father{
  border:1px solid red;
  width: 80vh;
  height: 90vh;
  position:relative;
}
.box{
  border:1px solid green;
  width: 100px;
  height: 100px;
  position:absolute;
  top:50%;
  left:50%;
  margin-left:-50px;
  margin-top:-50px;
}
  • absolute and margin 需要设置盒子的宽度和高度

    .father{
      border:1px solid red;
      width: 80vh;
      height: 90vh;
      position:relative;
    }
    .box{
      border:1px solid green;
      width: 100px;
      height: 100px;
      position:absolute;
      top:0;
      left:0;
      right:0;
      bottom:0;
      margin:auto;
    }
    
    • absolute and transform

      .father{
        border:1px solid red;
        width: 80vh;
        height: 90vh;
        position:relative;
      }
      .box{
        border:1px solid green;
        width: 100px;
        height: 100px;
        position:absolute;
        top:50%;
        left:50%;
         transform : translate(-50%,-50%)
      }
      
      • flex

        .father{
          border:1px solid red;
          width: 80vh;
          height: 90vh;
          display:flex;
          justify-content:center;
          align-items:center;
        }
        .box{
          border:1px solid green;
        }
        
        
      • grid 和flex 一样,不过grid的兼容性不太好

        		.father{
          border:1px solid red;
          width: 80vh;
          height: 90vh;
          display:grid;
          justify-content:center;
          align-items:center;
        }
        .box{
          border:1px solid green;
        }