#问问问#谢谢谢谢###

#问问问#谢谢谢谢###

http://img1.sycdn.imooc.com//climg/5ea58e0c094c284f15400908.jpg我想问下为什么垂直居中需要top:0;bottom:0;margin:auto 0;才能起到垂直居中效果,直接margin:auto 0;为什么起不到居中效果呢

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,这是设置定位元素垂直水平居中的一种方式。

这个现象可以称为拔河效应:盒子设置left:0 ;想要让它显示在左边 ,设置了right:0,又想要让它又显示在右边 。两边都在拉它 ,这个时候出现margin:auto; 我直接在中间好了。

而top:0和bottom:0也是一样的,上下都在拉它,然后出现margin:auto,垂直方向上也居中显示了。

祝学习愉快~


好帮手慕糖 2020-04-27 09:50:02

同学你好,可以参考如下理解:

1、块级元素,自己占一行,在css的规范中,元素他的左外边距+左边框宽度+左内边距+内容的宽度+右内边距+右边框+右外边距=包含块的宽度,如果给他的左右外边距设置为auto的时候,他会实现平分剩下的距离,从而达到一个水平居中的效果。

2、但是块级元素的高度并不会自动扩充,是无法直接使用auto设置垂直居中。所以需要结合定位,然后设置bottom与top为0。设置垂直居中。

如果我的回答帮助了你,欢迎采纳,祝学习愉快~

  • 提问者 母鸡阿 #1
    您好,我想问一下结合定位后 top=0;bottom=0;这两个是什么意思呢,为什么要在这两个的基础上在设置margin:auto 0 呢 谢谢谢谢
    2020-04-28 21:57:29
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师