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

这一节有个问题,当讲到 两个子层 为什么没有并排在一起的时候,讲师说的原因是“宽度已经放不下了”,可是800+140 才940啊 是小于父层960的,所以没有并排在一起,是因为div.left被设置左浮动后,其实是脱离了标准文档流的,导致div.right顶了上去,他俩都在父层的左上角

正在回答

4 回答

出现子元素从父元素#content中溢出的原因,不是因为设置了浮动的子元素脱离了标准流,而是因为子元素设置了浮动,而父元素没有设置浮动使得浏览器失去了haslayout(布局),这是一个浏览器bug,所以老师才教给大家针对父元素受到浮动影响,清除浮动的方法width:100%(或固定宽度)+overflow:hidden

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

那个脱离标准文档流是怎么回事啊

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

第一个div设置左浮动以后,第二个div换行显示了,但是并没有在div1的下方显示 而是部分与div1重叠,被div1遮住了,如果说没有脱离文档流,为什么会部分重叠呢 他们都已父元素的0,0坐标为原点的

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

主要是因为第二个子层的高度比第一个子层高,在IE8和现代浏览器如FF,safari等中,当第二个子层没有设置浮动的时候,会换行显示,在低版本浏览器如IE6,IE7中不存在这个问题,一般出现类似问题,大多数都是尺寸大于父层导致的,应该是定式思维导致的口误,设置浮动的元素没有脱离标准文档流,设置浮动的元素仍旧占据页面空间,这一点就足以说明了,所以同学你的猜想是不对的。脱离标准文档流的元素,一定是不会占据标准文档流里的空间的,紧邻其后的元素会填满它所在的位置,并且脱离标准文档流的元素会对占据它位置,甚至其他网页元素进行遮盖

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

张钻研

高度设置一样也没用啊,解释不通啊
2014-08-23 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
网页布局基础
  • 参与学习       214707    人
  • 解答问题       1756    个

让你精通CSS中三大定位机制,彻底掌握网页布局的相关知识

进入课程
意见反馈 帮助中心 APP下载
官方微信