为了账号安全,请及时绑定邮箱和手机立即绑定

要想实现上图练习中的效果为什么要用绝对定位呢?

.left{ width:200px;height:500px;position:absolute;left:0;top:100px;background:blue;}
.right{background:#9C9;height:500px;margin-left:210px;}

要实现上面的效果这里为什么要用绝对定位呢?

我用的浮动,代码如下:

.left{width:200px;height:500px;float:left;background:blue;}
.right{height:500px;margin-left:210px;float:right;background:#9C9;}

这样写的错误在哪里?为什么中间红色会空那么大呢?


正在回答

2 回答

float:right会让div往右边浮动,而.left则已经往左浮动了,故而一个左贴边,一个右贴边,中间自然露出来大片的底色(红色)。所以你这里的margin-left:210px并没有起到实质上的作用,因为中间的区域估计有上千px。要想用浮动来实现这样的效果,必须都设置成float:left。

但是本题的任务要求:右侧(right)先加载,左侧(left)后加载。

而且下面的div代码也是right在前面,left在后面。如果是left在前面,right在后面,那么可以直接使用float:left,从左到右按顺序向左浮动,再设置right的margin-left:10px即可实现。

本题的精髓就在于left在后面,right反而在前面,所以只能只用绝对定位来实现。

3 回复 有任何疑惑可以回复我~
#1

枫芒i 提问者

是不是可以这么理解?float:right和 margin-left:210px实际效果相悖,但是浮动的优先级要高,所以margin-left:210px并没有起到实质上的作用。这样理解对吗?谢谢
2018-06-12 回复 有任何疑惑可以回复我~
#2

如梦亦晨 回复 枫芒i 提问者

可以这样理解。
2018-06-13 回复 有任何疑惑可以回复我~

在看了上面的回答后,我试了试加了绝对定位和没加绝对定位的区别,加了绝对定位的网页缩小时那200px不变,在那呆着,没加绝对定位的网页缩小时那200px本身的颜色没了,变回了main所设置的背景颜色。也就是“被挤掉了”

下面那俩图都是没加绝对定位的

第一张图是正常的:

https://img1.sycdn.imooc.com//5c1a51e0000107c311410810.jpg

而接着把网页往左缩小时,就会变成下面这样:

https://img1.sycdn.imooc.com//5c1a51e100013abe08520828.jpg


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
如何用CSS进行网页布局
  • 参与学习       209624    人
  • 解答问题       1153    个

用最简洁的案例教你布局的那些知识,这是前端工程师基本技能

进入课程

要想实现上图练习中的效果为什么要用绝对定位呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信