CSS各种居中

水平居中

行内元素

  • 对爸爸使用text-align: center

块级元素

单个元素

  • 对儿子使用margin: 0 auto

多个元素在一行

  • 对爸爸使用display: inline-block +text-align: center,或者
  • 对爸爸使用display: flex+justify-content: center

垂直居中

行内元素

  • 对儿子上下设置一样的padding,或者
  • (如果只有一行)把儿子的heightline-height设为相等的,或者
  • 使用vertical-align: middle

块级元素

知道儿子的高度

  • 对儿子使用绝对定位并设置top: 50%+```margin-top: -Xpx``,其中X是儿子高度的一半

不知道儿子的高度

  • 对儿子使用绝对定位并设置top: 50%+transform: translateY(-50%)

如果浏览器支持flexbox

  • 对爸爸使用display: flex+justify-content: center+flex-direction: column

垂直+水平居中

固定长宽

  • 对儿子使用绝对定位,设置topleft为50%,margin第一项和最后一项为负。

不固定长宽

  • 对儿子使用绝对定位,设置topleft为50%+transform: translate(-50%, -50%)

如果浏览器支持flexbox

  • 对爸爸使用display: flex+justify-content: center+align-items: center

总结

  • 最基本的3种居中:水平的text-alignmargin,垂直的vertical-align
  • flexbox能够解决大部分问题
  • 不想用flexbox可以用兼容性较好的绝对定位+transform的方法
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,862评论 1 92
  • 原文地址:CSS各种居中实现方式 CSS居中是每次布局都需要面对的问题,但是同一个居中方法并不是任何元素都能使用的...
    薛普定朗谔克阅读 848评论 1 13
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 3,584评论 0 6
  • 沉浸在迷幻中许久, 痴梦方醒。 任万千信手可拈的花飘离, 只留清静闲适的一处妙居。 无形的隔膜不知几时形成, 轻巧...
    艺林漫笔阅读 202评论 0 0
  • 前世爱过的人阅读 132评论 0 0