不太理解清除浮动怎么会让父元素包住浮动元素的
来源:2-14 编程练习
qq_慕用6596887
2020-08-15 17:56:34
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> <style> .per{ width: 300px; height: auto; border:2px solid #aaa; } .li{ width: 100px; height: 100px; background: red; margin: 5px; float: left; } /*此处写代码*/ /*.clear:after{ content:"."; display:block; height:0px; clear:both; visibility:hidden; } .clear{ *zoom:1; }*/ .clearfix{ clear:both; } </style> </head> <body> <div class="per clear"> <div class="li"></div> <div class="li"></div> <!-- 此处写代码 --> <div class="clearfix"></div> </div> </body> </html>
已知:元素设置浮动后会脱离文档流,所以为脱离div。clear属性是指定哪一方向上不允许存在浮动元素。
那么在父元素中添加一个空元素并设置clear:both,父元素的方框照理说应该还是塌陷的啊?子元素的float属性又没有去除。空元素的clear:both是不允许这个空元素周围存在浮动元素罢了
3回答
好帮手慕久久
2020-08-15
同学你好,问题解答如下:
准确的说,给空div设置clear:both,是为了清除浮动的影响(并不是清除子元素的浮动效果),即清除浮动给父元素带来的高度塌陷问题。
“.clear”这个样式,告诉浏览器,我的左边和右边都不允许有浮动元素的存在。由于此时第一个div和第二个div位置已经确定好了,浏览器在计算“.clear”这个div的位置时,为了满足它的要求,就会让其在浮动元素下面独占一行显示,这个过程,就会将父元素的高度撑开,从而解决的高度塌陷的问题。
对于以上,同学了解一下即可,会用就行了。
祝学习愉快!
6hEd
2020-08-19
新手像我刚开始就不理解,这样说吧,
浮动其实会把父元素的高度扣掉,你想想一开始父元素高度是auto(),减一个减100,三个300,
尼马高度就没了.....没了咋辨?
给他一个固定高度不就完事了!
意思就是儿子你今天在房间,不准出去玩!
打好多字.不采纳我.你找不到工作的 :) 哈哈哈
好帮手慕久久
2020-08-15
同学你好,理解的是对的。
祝学习愉快!
相似问题