居中问题
2016-05-18 本文已影响0人
Cyan哈宝
CSS中的居中问题理解与归纳
水平居中
(1)inline或inline-block、inline-table、inline-flex元素
直接{text-align:center}
(2)block元素
有一个固定的宽度
{margin:0 auto}
(3)不止一个block元素
如果要把n个block元素居中排列在一行,可以把block元素display成inline-block,再用(1)中的办法。
如果要把多个block元素排列成多行居中,(2)中的方法还是可行的。
垂直居中
(1)inline或inline-block、inline-table、inline-flex元素
1)单行
两种方法,第一种方法,用padding,(equal padding above and below them.)
第二种方法:height=line-height
2)多行
第一种方法:Equal padding on top and bottom
第二种方法:
用table,table默认是verticla-align:center
![](https://img.haomeiwen.com/i1796265/d6d7bae8e10ac38d.png)
CSS如下:
![](https://img.haomeiwen.com/i1796265/f00f23a3dfad1692.png)
![](https://img.haomeiwen.com/i1796265/dd4ddba811736418.png)
第三种方法:flexbox弹性布局,用来为盒状模型提供更大的灵活性
http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html
这是介绍flexbox布局的网页
![](https://img.haomeiwen.com/i1796265/f4438bd40899752f.png)
第四种方法:虚元素
![](https://img.haomeiwen.com/i1796265/4633b8e57b31fc6a.png)
(2)block元素
1)已知元素的高度
![](https://img.haomeiwen.com/i1796265/4e57bfc74cef9de5.png)
2)元素的高度未知
![](https://img.haomeiwen.com/i1796265/2d123870b12764a1.png)
3)flexbox
![](https://img.haomeiwen.com/i1796265/19d68dffb0ca3b68.png)
水平垂直同时居中
1)已知元素宽度和高度
![](https://img.haomeiwen.com/i1796265/d7aa265de2036d4d.png)
2)元素宽度
![](https://img.haomeiwen.com/i1796265/38662c14f328ebf3.png)
3)flexbox
![](https://img.haomeiwen.com/i1796265/221cf0a73f03df55.png)