元素的水平垂直居中的方法

别来无恙 提交于 2019-11-28 22:23:33

水平垂直居中

Html:

  <div id="wrap">
    <div class="box">321</div>
  </div>

其中方法 1、2 必须指定居中元素的高度,方法 3、4 无需指定居中元素的高度

方法一:

#wrap{
      width: 500px;
      height: 500px;
      background: gray;
      
      */* 父元素相对定位 */*
      position: relative;
    }
    #wrap .box{
      width: 200px;
      background: deeppink;

      */* 必须给定高度 */*
      height: 200px;
      position: absolute;
      top:0;
      left: 0;
      right: 0;
      bottom: 0;
      margin: auto;
    }

方法 二:

    #wrap {
      width: 500px;
      height: 500px;
      background: gray;
      */* 父元素相对定位 */*
      position: relative;
    }

    #wrap .box {
      width: 200px;
      background: deeppink;
      */* 必须指定高度 */*
      height: 200px;
      position: absolute;
      top: 50%;
      left: 50%;
      */**
*由于是子元素的左上角距离父元素的左上角 50%,*
*所以得把上下用 margin 拉回来*
**/*
      margin-left: -100px;
      margin-top: -100px;
    }

方法三

    #wrap {
      width: 500px;
      height: 500px;
      background: gray;
      */* 父元素相对定位 */*
      position: relative;
    }

    #wrap .box {
      width: 200px;
      background: deeppink;
      */* 可以不指定高度 */*
      position: absolute;
      top: 50%;
      left: 50%;
      */**
*由于是子元素的左上角距离父元素的左上角 50%,*
*所以得把上下用 translate 拉回来 ,*
*translate是相对于自己的位置*
**/*
      transform: translate(-50%, -50%);
    }

方法四:

    #wrap {
      width: 500px;
      height: 500px;
      background: gray;
      */* 使用 felx 布局 */*
      display: flex;
      justify-content: center;
      align-items: center;
    }

    #wrap .box {
      width: 200px;
      */* 可以不指定高度 */*
      background: deeppink;
    }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!