如何水平垂直居中一个元素

1.绝对定位与负边距实现(已知高度宽度)

这种方式需要知道被垂直居中元素的高和宽,才能计算出margin值,兼容所有浏览器

// html部分
<body>
  <div id='container'>
    <div id='center' style="width: 100px;height: 100px;background-color: #666">center</div>
  </div>
</body>
// css部分
#container {
   position: relative;
}
#center {
   position: absolute;
   top: 50%;
   left: 50%;
   margin: -50px 0 0 -50px;
}
2.绝对定位与margin:auto(已知高度宽度)

这种方式无需知道被居中元素的高和宽

#container {
   position: relative;
   height:100px;//必须有个高度
}
#center {
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   bottom: 0;
   margin: auto;//注意此处的写法
}
3.绝对定位+CSS3(未知元素的高度)

利用Css3中的transform,可以轻松的在未知元素的高度的情况下实现元素的垂直居中

#container {
  position: relative;
}
#center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
4.flex布局

利用flex布局,其中justify-content 用于设置或检索弹性盒子元素在主轴(横轴)方向上的对齐方式;而align-items属性定义flex子项在flex容器的当前行的侧轴(纵轴)方向上的对齐方式。不能兼容低版本的IE浏览器

#container {//直接在父容器设置即可
   height: 100vh;//必须有高度
   display: flex;
   justify-content: center;
   align-items: center;
 }
5.flex/grid与margin:auto(最简单的写法)

容器元素设置为flex布局或者是grid布局,子元素只要写margin:auto即可

#container {
  height: 100vh;//必须有高度
  display: grid;
}
#center {
  margin: auto;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,697评论 1 92
  • 收听音频,戳链接,旧号itclan已暂停使用,欢迎关注微信itclanCoder公众号可收听更多音频 前言 关于网...
    itclanCoder阅读 12,544评论 3 30
  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 10,149评论 0 26
  • 大家有没有经历过这样孤独的夜晚:一个很困扰的问题伤到了你,你无法向他人诉说,也不愿向他人诉说。这时候你通常会做什么...
    思哲即思哲阅读 3,496评论 0 1
  • 01 1980年左右,广州某官员曾经问过邓公「改革开放了,能不能高点赛马啊,彩票啊之类的。」 邓公当时在打桥牌,显...
    上帝板板阅读 3,474评论 5 5

友情链接更多精彩内容