关于right的margin-left值

关于right的margin-left值

right设置-220px就能跑到第一行middle的末尾并盖住它,-200px却在第二行最左边,这是什么原理?

正在回答

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

2回答

同学你好, 可以简单的理解因为父元素的包裹着right盒子, 所以right盒子左移的时候先在自己所在行移动, 只有移动到刚好与自身宽度一样距离的时候,完全移到父级元素的最左侧了(在第二行), 所以从第一行开始显示

http://img1.sycdn.imooc.com//climg/5cf0d2e8000187b419120928.jpg

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~

好帮手慕慕子 2019-05-31 14:00:45

同学你好,可以跟着老师的步骤这样理解

  1. margin-left为负值是往左移动。 三个盒子本来浮动后要在一行显示 ,并且小盒子应该在middle后面,也就是右边显示 。但是由于middle设置宽度100%把它们挤下去了 。此时如果强制性让小盒子往左移动 ,那么它会回到第一行 ,挤在middle上面 

    http://img1.sycdn.imooc.com//climg/5cf0c2410001efaf09070549.jpg

  2. 因为右边的盒子要在右边显示,所以不需要往左移动太大。只需要移动它自身的宽度,让它整个区域叠在中间盒子上面,所以设置margin-left:-220px。(此时距离右边还剩父元素padding的距离,结合定位移动)http://img1.sycdn.imooc.com//climg/5cf0c1a50001702f15880631.jpg

  3. 而左边的盒子要在左边显示,所以要往左移动margin-left:-100%就是父元素宽度的100% ,这里不设置px为固定的是因为浏览器宽度不同,那么盒子的宽度也会随着变化的。所以设置100%就是不管父元素宽度多大,都是移动父元素的100%的宽度哦(不包括padding , 所以会贴在middle左侧 ,此时它距离左侧也有父元素padding的距离 ,也结合定位 ,让它移动哦)

    http://img1.sycdn.imooc.com//climg/5cf0c1b50001397715270576.jpg

同学可以根据示例, 在结合教辅资料的讲解进行理解哦,

http://file.mukewang.com/class/assist/192/4698985/%E5%9C%A3%E6%9D%AF%E5%B8%83%E5%B1%80%E5%AE%9E%E7%8E%B0%E6%80%9D%E8%B7%AF.pdf

这一块比较抽象, 不好理解, 不过关于圣杯布局的原理了解即可,是布局的一种方式,实际使用比较少

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~



  • 提问者 Leonard_ #1
    这一点是理解的,但是right给margin-left :-200px的时候,为啥不能移动到第一行并且多出middle边界20px,而是在第二行左移了,移动到第二行左边空白的地方了,只有给了-220px才到第一行去
    2019-05-31 14:22:11
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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