圣杯布局对left和right的margin-left :-100%和-220px不太理解

来源:3-2 圣杯布局案例(了解即可)

Leonard_

2019-05-31 11:49:45

为啥设置左移会上移跑到第一行上面去盖住?同样都设置了relative为什么会被覆盖?设置margin-top:负值 不能移动到上面去吗?

写回答

2回答

好帮手慕慕子

2019-05-31

同学你好, 抱歉老师这里描述的不严谨, 是可以使用margin-top设置, 只是不推荐使用而已。

因为使用margin-top需要知道中间内容的高度,当中间内容发生改变的时候, 需要修改margin-top的值, 这样的布局不灵活, 

使用负的margin-left设置100%就是不用计较中间内容的高度,都是移动父元素的100%的宽度哦。 这样就中间内容的高度发生, 并不会影响布局

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

祝学习愉快~~~

0

好帮手慕慕子

2019-05-31

同学你好, 这里可以这样理解

1、 因为在HTM结构中, left和right在middle的后面, 所以浏览器在渲染的时候,从上到下解析HTML结构,后面元素默认的层级会比前面的高, 所以虽然都设置了relative, 但是后面的元素层级高,会覆盖了中间的

2、本来三个小盒子都设置了浮动 ,它们应该在一行显示 ,也就是左右两个小盒子要在middle后面浮动 .但是middle设置宽度100%没有它们的位置 , 把它们两个挤下去了 .

http://img.mukewang.com/climg/5cf0be1e0001d39405980315.jpg

如果这个时候我强制性的让小盒子往左移动 ,那么它就会回到第一行 , 与middle重叠 . 所以这里虽然看起来盒子是往上移动了 ,实际上是设置它往左移动哦,所以不可以使用margin-top哦

3、left的margin-left:-100%;  可以参考教辅资料中的解释理解哦

http://img.mukewang.com/climg/5cf0c05200014a4c06490640.jpg

4、right设置 -220px,  也是为了让右侧在最右边显示

http://img.mukewang.com/climg/5cf0c08b000119b805920205.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

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

祝学习愉快~~~

1
heonard_
h html里的行到底是怎么定义的呢,既然挤到第二行了,那位置是不是在第二行的,用margin-top为啥不能上移?
h019-05-31
共1条回复

0 学习 · 40143 问题

查看课程