居中完全指南

一、水平居中

  1. 所有inline元素(包括inline-block),如文本等:text-align:center
  2. 单个block元素:margin: 0 auto (需要确定的宽度)
  3. 多个block元素:(两种解决方案)
    a.父级元素:text-align:center,子集元素:display:inline-block
    b.父级元素:display:flex; justify-content: center;

二、垂直居中

  1. inline元素(分为两种情况)
    a.单行:设置上下padding相同或者将line-height设为height的值
    b.多行:
    使用padding可以达到效果,若不能,说明父元素为table,无论是语义上的还是css设置的。此时,使用vertical-align:middle或者flex。但是会存在一个问题,这两种解决方案都会使所要垂直的元素高度最大化,充斥在父元素内。
    以上方案若没有效果,采取最后一种方案
.father {
  position: relative;
}
.father ::before {
  content: " ";
  display: inline-block;
  height: 100%;
  width: 1%;
  vertical-align: middle;
}
.ghost-center son {
  display: inline-block;
  vertical-align: middle;
  width: 190px;
  margin: 0;
  padding: 20px;
  background: black;
}
  1. block
    a.确定高度或不确定高度
.parent {
  position: relative;
}
.child {
  position: absolute;
  top: 50%;
  height: 100px;
  margin-top: -50px; /* 高度的一半 */
  //如果不确定高度,采用下列属性
  transform: translateY(-50%);
}

b.使用flex

水平垂直居中

  1. 已知高度(方法同block已知高度垂直居中)
  2. 未知高度(同上)
  3. flex
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,861评论 1 92
  • 在CSS中如何居中这事儿是CSS为人所抱怨的典型代表之一。“为毛它这么难?%>_<%”,开发者们抱怨道。我认为这个...
    红绿灯的黄阅读 1,052评论 0 1
  • CSS中如何完美做到居中,一直是令前端工程师头疼的问题。最近读到CSS-TRICKS中的一篇帖子,将居中问题的解决...
    擦柱而出阅读 604评论 0 5
  • 桂圆加酸奶可以做成桂圆酸奶,结合不二家棒棒糖,鸡蛋可以搅拌让其融化在一块然后凝固然后变成像巧克力一样的桂圆芝士。
    Mable康康阅读 173评论 0 0
  • 在火车上接到国浩律师的电话好兴奋!我坚信这是我决定来金华考试的勇气给我带来了好运!原来一旦正能量加持,好事也自然会...
    SUPREME_f9d2阅读 509评论 0 1