一个人真正的幸福并不是呆在光明之中,而是从远处凝望光明,朝它奔去,就在那拼命忘我的时间里,才有人生真正的充实。
元素居中显示
在我们日常布局中,经常会用到元素居中显示的效果,这节,我就来整理整理那些让元素居中的方法。
一般的,我们要将一个文本水平居中,可以给其text-align: center来达到居中效果,将一个文本竖直居中的话,我们给其行高,相应的,它会以行高的值进行竖直居中。但是,我们经常要将块级元素竖直水平居中,以下情况,主要就是针对块级元素将其居中。
一、利用 margin 实现居中显示
原理:利用其边距来达到居中效果
优点:这种方式适用于任何浏览器(IE7以上),不需要考虑兼容问题
缺点:要居中元素相对于其父元素必须有固定宽高
代码如下:
1 |
|
二、绝对定位
此方法类似于第一种
优点:可以兼容任何浏览器,并且不需要固定宽高,任意值都可以
代码如下:
1 |
|
三、transform 实现居中显示
在这里,我们需要将要居中的元素开启绝对定位
- translate(x,y) 括号的百分比数据,会以本身的长宽做参考,设置为原宽高的一半,一般情况下,设置为-50%
原理:设置其距离上左位置均为50%,但是我们的元素参考位置是左上角,所以只设置位置50%会向右下偏移其元素宽高的一半,因此,我们需要再让其向左上偏移元素宽高一半的值,就能达到让元素居中的效果。
优点:相比于第一种,优点就是不需要元素的宽高也可以让其居中
代码如下:
1 |
|
四、添加伪元素(::before、::after)实现居中显示
使用此方法之前,先说说css里面的vertical-align 属性,虽然这个属性能达到垂直置中,但是是指元素内的所有元素垂直位置互相置中,并不是相对于父元素的高度垂直居中。也就是说只有左右居中。但是如果要居中的元素中有一个元素的高度变为父元素的100%,那么就会实现垂直居中。所以使用伪元素来让要居中元素有一个高度为父元素的100%的伪 元素。注意 :div 一定要设置其属性 display: inline-block,因为vertical-align: middle是针对行内元素。
代码如下:
1 |
|
五、calc 动态计算实现居中显示
calc()支持CSS3;任何长度值都可以使用calc()函数进行计算
原理:利用calc() 函数的动态计算的能力,设置要居中元素的top值为50% - 50%的 div 高度,left值为50% - 50%的div高度。
代码如下:
1 |
|
六、使用表格或假装表格实现居中显示
1. 表格居中显示
这种方法是直接在表格中利用行内元素直接水平竖直居中
代码如下:
1 |
|
2. 假装表格居中显示
这种方式主要是通过设置要居中元素的父元素的属性display: table-cell
注意:修改display的时候可能会影响其他样式,需要谨慎使用
代码如下:
1 |
|
七、使用 Flexbox 弹性布局实现居中显示
这个方法使元素居中是我们最常用的方式,弹性布局在移动端使用最多,因为大部分手机浏览器都支持这个方法。
原理:使用align-items 或者 align-content 的属性,轻松使元素居中显示。
代码如下:
1 |
|
注:flexbox 布局的属性众多,后续会写一篇关于flex 的所有内容。如果有兴趣,可以去阮一峰大佬的博客看有关flex弹性布局的所有知识!!强烈推荐大佬博客!!
结束语
自此,是我对于元素居中显示的只是总结整理。可能不全面,欢迎各位大佬指正!