彻底搞懂多种方式实现垂直水平居中布局

起源

 今天看了一篇文章,面试官面试一个有三年经验的面试者,其中一个问题就是:有哪些方式可以实现垂直水平居中的方式?

 结果面试者就是知道有一个flex布局,支支吾吾也没有说清楚。所以我准备整理一下常用的居中方式:

使用absolute绝对定位实现

效果:

 

1.使用absolute盒子没有指定宽度和高度,再配合css3里的transform属性实现

//代码
<body >
    <div>
      <h2>我是一个垂直水平居中的元素</h2>
      <br/>
      <br/>
    </div>
</body>

//样式
 div{
    left: 50%;
    top:50%;
    position: absolute;
    background: cadetblue;
    transform: translate(-50%, -50%);
  } 

2.使用absolute盒子指定宽度和高度,再配合margin-top和margin-left来实现

//代码
<body >
    <div>
      <h2>我是一个垂直水平居中的元素</h2>
      <br/>
      <br/>
    </div>
</body>

//样式
div{
  width: 400px;
  height: 200px;
    left: 50%;
    top:50%;
    position: absolute;
    background: cadetblue;
    margin-top: -100px;
    margin-left: -200px;
  }  

3.使用absolute盒子指定宽度和高度,再配合margin为auto来实现

//代码
<body >
    <div>
      <h2>我是一个垂直水平居中的元素</h2>
      <br/>
      <br/>
    </div>
</body>

//样式
   div{
    width: 400px;
    height: 200px;
    background: cadetblue;
    position:absolute;
    left:0;
    top: 0;
    bottom: 0;
    right: 0;
    margin: auto;
} 

使用flex弹性盒子来实现

注意:由于是使用弹性盒子,一般我们会给父布局设置宽度和高度,如果不设置高度,父布局高度和子布局高度一样,就看不出效果,用时使用flex要注意弹性盒子在浏览器的兼容

//代码
  <div class="div">
    <div>
      <h2>我是一个垂直水平居中的元素</h2>
      <br />
      <br />
    </div>
  </div>

//样式
 .div {
    height: 600px;
    width: 100%;
    display: -webkit-flex;
    display: flex;
    background: rgb(14, 236, 106);
  }

  div {
    background: cadetblue;
    width: 400px;
    height: 200px;
    margin: auto;
  }

效果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值