在CSS中对元素使用了浮动,然后再使用相对定位的问题

依次定义了div1,2,3三个div元素,并且对3个div均使用float:left使之向左浮动,如下图:然后,对div1使用相对定位,即对div1加上position:... 依次定义了div1,2,3三个div元素,并且对3个div均使用float:left使之向左浮动,如下图:

然后,对div1使用相对定位,即对div1加上position:relative;left:300px代码,图就变成了这样:

div2之前的空位就是div1进行相对定位之前的位置,根据相对定位的定义,这样的结果似乎没什么问题。但是我有一个疑惑,不是说对div进行浮动后就会脱离文档流吗,那么使用相对定位的话,相对定位的起点就已经脱离文档流了啊。那么按照个人理解,div2的前面不应该有空白,也就是说不应该为脱离文档流的div1留出空位啊。但是结果却留出了空位,有谁知道为什么吗?
展开
 我来答
鳑鲏鱼
推荐于2018-02-28 · TA获得超过3326个赞
知道小有建树答主
回答量:684
采纳率:100%
帮助的人:644万
展开全部
相对定位的特点就是占着马桶不拉屎,就是说它相对它本来的位置偏离了一定距离以后,它去了别的地方,但是它原来待的地方也是不会让出来的,你3个div浮动以后,就变成了图1的样子,那么3个div自己的位置已经确定,那么不管是div1也好,其他div也好,用相对定位跑到隔壁家去玩也好,跑到天涯海角也好,它家里的位置还是占着不让别人去的,仿佛它不曾离开。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式