css垂直水平居中显示的解决办法

前端经常遇到居中定位的问题,今天总结集中水平垂直居中的方法,我常用的方法有5种,这5种方法针对不同情况做居中,这些方式只针对于块级元素的水平垂直居中,像文字居中的text-align:center,vertical-align:middle,块级元素的水平居中margin:0 auto不在讨论范围内

先预定一下html结构

<div class="parent">
  <div class="child"></div>
</div>

父级div设置样式

.parent{
  position:absolute;
  top:0;
  left:0;
  width:100vw;
  height:100vh;
}

第一种情况是中间内容宽高不固定

(第一种)方法一

这种情况有两种方式解决,一是使用flex弹性布局,另一种是使用transform:translate的方式
flex布局设置方式

.parent{
  position:absolute;
  top:0;
  left:0;
  width:100vw;
  height:100vh;
  display:flex;
  justify-content:center;
  align-items:center;
}

父级设置样式后子元素无论宽高如何都是居中显示的

(第二种)同样是使用flex布局

.parent{
  position:absolute;
  top:0;
  left:0;
  width:100vw;
  height:100vh;
  display:flex;
}
.child{
  margin:auto;
}

这种方式也是可以实现垂直水平居中的,而且child宽高固定不固定都会居中显示

(第三种)方法二
.parent{
  position:absolute;
  top:0;
  left:0;
  width:100vw;
  height:100vh;
}
.child{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
}

translate设置百分比的时候与margin不同,它是针对自身计算的,是自身宽的的百分比,而margin的值为百分比时是针对父级元素计算的

第二种情况是中间内容宽高固定

(第四种)方法一

这种情况上面的三种实现方式同样适用,除此之外还有两种方式来实现

.parent{
  position:absolute;
  top:0;
  left:0;
  width:100vw;
  height:100vh;
}
.child{
  position:absolute;
  top:50%;
  left:50%;
  width:100px;
  height:100px;
  margin-left:-50px;
  margin-top:-50px;
}
(第五种)方法二
.parent{
  position:absolute;
  top:0;
  left:0;
  width:100vw;
  height:100vh;
}
.child{
  position:absolute;
  width:100px;
  height:100px;
  margin:auto;
  top:0;
  right:0;
  bottom:0;
  left:0;
}

这5种情况基本能够满足我的工作需要,其实你只要了解一种就可能应付大部分水平居中的样式开发,只不过实际开发的时候情况千差万别,有的时候就不能使用这上面的某一种方案,这时就得考虑使用其他的方式去实现了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在css布局中,经常会有样式居中的需求。现在列举以下常见的布局方法。首先我们要明确,居中一定有一个参照物。所以会涉...
    David三人行阅读 555评论 0 0
  • 介绍css的盒子模型 css的盒子模型有两种:IE盒子模型,W3C盒子模型盒子模型:内容(content),内边距...
    5b5072cc2c5b阅读 580评论 0 0
  • 一,css常见问题: 一、margin问题 上下margin重叠问题,即给相邻的两个div设置margin-bot...
    _往后_阅读 1,651评论 0 2
  • 1.介绍一下标准的CSS的盒子模型?低版本IE的盒子模型有什么不同的? 1.盒子模型有两种,IE盒子模型、W3C盒...
    getElementsByMK阅读 2,239评论 0 6
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 10,620评论 0 11