在网页开发中,经常会有嵌套元素中将子元素居中的要求。下边将五种常用的居中方法进行总结。
1:原始图(父子元素无border
,无padding
):
一:使用margin进行固定长度的偏移
在使用margin
进行具体高度的偏移时,需要知道父元素和子元素的具体的宽高尺寸
1:水平方向居中
在进行水平方向上的居中时,可对子元素样式使用
2:垂直方向居中
在使用margin
进行垂直方向上的居中时,至少要满足三个条件中的一条才能达到垂直居中的效果,否则子元素和父元素会一同被带下来。这涉及到margin
的合并,在我的另一篇博客《关于盒子模型中margin
叠加现象的归类与思考》中我对这个现象经过查阅资料和实验做出了个人的推断理解。三种前提条件分别是:
1)为父元素设置border
;
2)为父元素设置padding
;
3)在父元素中添加overflow:hidden
的样式。(在标准盒子模型中前两种会将盒子模型的既定尺寸扩充,在没必要设置padding
和border
时不建议使用前两种方法。)。
**分析:**对父元素使用overflow:hidden
子元素使用margin-top
进行下移实现垂直居中。
**缺点:**在进行垂直居中时你需要明确父元素的height
,并且进行计算,如果父元素的高度变了,子元素将不再垂直居中,还要再修改数据,维护性极差。
二:使用绝对定位并进行偏移
1)首先需要将父元素样式设置position:relative
;
2)将子元素样式设置position:absolute
;
3)使用left
和top
进行定位实现居中;
注意: 只有在元素使用position:relative/absolute/fixed
才能使用top/left/bottom/right/z-index
属性,同时元素的float
,clear
会失效。
三:使用绝对定位并margin自适应进行居中
四: 使用table–cell进行居中显示
五:使用弹性盒子来实现居中
最后的总结
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。