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

width:100%;overflow:hidden;消除浮动的原理是什么?


width:100%;

 应该是指定元素的宽度为父元素的100%,对于块级元素,这条代码应该没用,因为块级元素是默认宽度100%的。

overflow:hidden;

这条代码应该是指定超出元素框的内容不可见


为什么这两条代码加在一起就能消除浮动子元素的影响呢?而单用overflow:hideden却不行

求大神回答

正在回答

1 回答

还是我自己来填这个坑吧

先说说 overflow: hidden; 这句话意思是对于超出父元素框线外的子元素将被隐藏,大家都知道,如果一个元素的子元素都使用了浮动,并且该元素没有设置高度,那么这个元素本身的高度就回塌陷到0。此时该元素的所有子元素都会在元素框外,使用了这句话之后是不是所有的子元素都不可见了呢?其实并不是,相反,这句话会让该元素的框线扩展到包围它下面的所有浮动子元素。这样就消除了子元素浮动给父元素带来的影响。

对于width: 100%; 表面上看这句话说了相当于没说,而对大多数浏览器它确实是这样,但是对于IE6/7这两个怪胎,这句话会触发他们的haslayout隐藏属性,同样的还可以使用zoom: 1;之类的。想了解haslayout详细的自己去问度娘,这里就不多说了。

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

东风破

很有道理
2015-08-16 回复 有任何疑惑可以回复我~
#2

Seandor

“其实并不是,相反,这句话会让该元素的框线扩展到包围它下面的所有浮动子元素。这样就消除了子元素浮动给父元素带来的影响。”为什么并不是啊,你这不等于没说。
2016-03-24 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

width:100%;overflow:hidden;消除浮动的原理是什么?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号