在前端面试中,对于元素进行水平和垂直居中的问题,问的频率确实很高,如何回答呢?总结如下(不完整)
水平元素居中:行内元素解决方案
只需要把行内元素包裹在一个属性display为block的父层元素中,并为父层元素添加如下属性
|
|
水平元素居中:块状元素解决方案
|
|
水平居中:多个块状元素解决方案
将元素的display属性设置为inline-block,并把父元素的text-align属性设置为center即可:
|
|
水平居中:多个块状元素解决方案(使用flexbox布局实现)
使用flexbox布局,只需要把待处理的块状元素的父元素添加属性display:flex及justify-content:center即可
|
|
垂直居中:单行的行内元素解决方案
|
|
将子元素的height和line-height设置和父元素同样高度即可
|
|
垂直居中:多行的行内元素解决方案
组合使用display:table-cell和vertical-align:middle属性来定义需要居中的元素的父元素来实现
1234567 .parent{width:300px;height:300px;/*以下属性实现垂直居中*/display:table-cell;vertical-align:middle;}
垂直居中:已知高度的块状元素解决方案
|
|
水平垂直居中:已知高度和宽度的元素解决方案1
可自适应,比方案2更智能
|
|
水平垂直居中:已知高度和宽度的元素解决方案2
|
|
水平垂直居中:未知高度和宽度的元素解决方案
|
|
水平垂直居中:使用flex布局来实现
|
|