CSS居中小结

CSS中在不同场景下,解决居中的方式有很多,经常让人无从下手,所有我们将CSS居中进行一次小结,方便以后我们布局使用。

水平居中

1、 inline或者是inline-*元素

对于这类元素只需要在其块级父元素中规定text-align:center

.parent{text-align:center;}

2、一个块级元素

假如一个块级元素被指定width后,我们可以通过指定margin-left以及margin-right来使其居中(假如未指定width,将占满整行就没有必要居中)

.parent{margin-left:auto;margin-right:auto;}

3.多个块级元素

如果你想让两个或者两个以上的块级元素在一行上面水平居中,那么最好的办法是改变他们display的类型。这儿给两个例子,一个使用inline-block,另一个使用flex。当然,如果你的意思是让多个块级元素堆积叠加显示在一条竖列上,那么设置左右外边距的值为auto这一方法依然有效。

垂直居中

1、单行inline或者inline-*元素

对于该类元素我们可以通过设置padding-top以及padding- bottom来达到垂直居中的效果

.parent{padding-top:50px;padding- bottom:50px;}

但是当padding不可使用时,可以尝试将height以及line-height设为相同的大小的值

.parent{height:50px;line-height:50px;}

2、多行inline或者inline-*元素

使用flex将子元素相对于父元素居中

.parent{display: flex;flex-direction: column;justify-content: center;}

3、块级元素

在网页布局中,不知道元素的具体高度(即高度非固定值)是很常见的,通过下移其父级高度的一半,再向上移动其自身高度的一半达到垂直居中的效果。

.parent{position: relative;}

.child{position: absolute;top:50%;transform:translateY(-50%);}

当然我们也可以使用flex来使其垂直居中,而且使用flex会特别简单

.parent{display: flex;flex-direction: column;justify-content: center;}

水平垂直居中

1、使用flex

很显然通过上面的总结我们知道使用flex可以很简单的让元素到达水平垂直居中

.parent{display: flex;justify-content: center;align-items: center;}

2、使用position

使用绝对定位先设置相对于父元素50%和50%的上/左偏移,再使用transform属性,即translate(-50%, -50%),在横向、纵向上都偏移自身高度的一半以居中。

.parent{position: relative;}

.child{position: absolute;top:50%left:50%;transform:translate(-50%, -50%);}

本文仅是对常用居中方法进行总结,还有很方法并未收录进来,因为我也不是很清楚.....所以将原文地址链接放这里,大家一起学习一起进步吧。

CSS居中完全指南(英文)

CSS完全居中指南(译文)

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,863评论 1 92
  • 水平居中 行内或类行内元素 在块级父容器中让行内元素居中,只需使用 text-align: center; : 这...
    莱昂纳德刚阅读 214评论 0 0
  • CSS居中总结 最近在学习CSS居中,居中里面又包含水平居中和垂直居中,分不太清内联元素(inline or in...
    从这到那阅读 489评论 1 2
  • 简单地整理一些css居中的方法。 text-align:center: 这种方法可以让** inline/inli...
    饥人谷_Dylan阅读 667评论 1 52
  • 想起很多年前的那个暖冬,灿烂的阳光被寒冷的冰面散射,在人们眼帘上呈现以光晕,一片片,一朵朵,像孩子用手,大块大块的...
    东南不西北阅读 247评论 0 0