为什么div设置float后高度不自动增加?
展开全部
我感觉你另一个问题和这个是一个意思,O(∩_∩)O哈哈~
因为浮动的子元素会脱离文档流,不再占据父元素的空间,父元素也就没有了高度,低版本的ie(高版本的没试过)会自动扩大父元素的高度,但其他浏览器不会,这个时候给父元素加个overflow:hidden属性就行了。
因为浮动的子元素会脱离文档流,不再占据父元素的空间,父元素也就没有了高度,低版本的ie(高版本的没试过)会自动扩大父元素的高度,但其他浏览器不会,这个时候给父元素加个overflow:hidden属性就行了。
更多追问追答
追问
用我是会用的就是不理解原因。两个问题向你请教:
①浮动的子元素会脱离文档流,不再占据父元素的空间。如果说“不再占据父元素空间”,为什么父元素设置width后,子元素不能超过该宽度的?
② 给父元素加个overflow:hidden,溢出的部分隐藏,浮动的子元素不是脱离文档流了吗,也就是说父元素没有了高度,那为什么溢出父元素高度的部分隐藏没有把子元素隐藏掉?
追答
你说的第一个问题只会出现在低版本的ie里,你可以用火狐、谷歌之类的非ie浏览器测试一下,绝对能超出的。
第二个问题,overflow:hidden有两个作用:1、清除浮动,2、隐藏溢出
以下写的div代表父元素,ul代表子元素
div加了overflow:hidden之后就清除了浮动,ul重归文档流,重新占据了div的空间,div高度自适应被撑开,它的高度等于ul所占据的空间的高度,这样也就不存在ul内容溢出了,自然不会隐藏。
必须给父元素定义固定的width和height值overflow:hidden才有隐藏溢出的效果,不然就是上面那种情况了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询