CSS中的布局详解(四):居中

居中一直是css里比较关键的一个概念,在多数情况下居中往往有许多种方法。

水平居中

行内元素居中text-align:center;
块级元素居中

  • margin:0 auto; //这种方法前提必须是要为元素设置宽度,否则宽度拉伸为父级的宽度,无法实现居中效果。
  • 利用绝对定位的“子绝父相”法,给父元素设置相对定位,子元素设置绝对定位和transform:
.container {
  position:relative;
}
.item {
  position:absolute;
  left:50%;
  transform:translate(-50%);
}
.container {
    display:flex;
    justify-content:center;
}

垂直居中

行内元素垂直居中:

  • 单行行内或文本元素,可以设置等值的padding的top值和bottom值:
padding-top:10px;
padding-bottom:10px;
  • 还有最常用的,让行高line-height和height值相等:
height:50px;
line-height:50px;
  • vertical-align属性,但这个属性需要设置一个类似table-cell的父级容器:
display: table-cell;
vertical-align: middle;

块级元素

  • 在已知元素高度的情况下,可以利用定位来实现居中:
.container {
    position:relative;
}
.item {
    position: absolute;
    top: 50%;
    height:100px;
    margin-top: -50px;
}
  • 在未知元素高度的情况下,首先需要定位到容器的中心,然后再使用transform和translate属性:
.container {
    position:relative;
}
.item {
    position: absolute;
    top:50%;
    transform: translateY(-50%);
}
  • 利用flex实现垂直居中:
.container {
    display:flex;
    flex-direction: column;
    justify-content: center;  
    align-items: center; //加上这条属性,就是水平和垂直居中
}

参考资料:

我的个人博客:http://chronosblog.top
我的微信公众号:runtustory

CSS布局详解系列索引:

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,825评论 1 92
  • 收听音频,戳链接,旧号itclan已暂停使用,欢迎关注微信itclanCoder公众号可收听更多音频 前言 关于网...
    itclanCoder阅读 8,227评论 3 30
  • 前言 温馨提示:本文较长,图片较多,本来是想写一篇 CSS 布局方式的,但是奈何 CSS 布局方式种类太多并且实现...
    sunshine小小倩阅读 3,183评论 0 59
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,811评论 0 2
  • 01 道歉有用的话,要警察干嘛? 昨天,是一年一度的西方“感恩节”,朋友圈里全是感恩的刷屏。 而我却在这一天“冒火...
    吉啦乌阅读 1,149评论 8 3