一、浮动产生原因
简单地说,浮动是因为使用了float:left或float:right或两者都有而产生的浮动,导致样式缺失或者不正确显示等问题;
二、浮动产生负作用
1、背景不能显示
由于浮动产生,如果对父级设置了(CSS background背景)CSS背景颜色或CSS背景图片,而父级不能被撑开,所以导致CSS背景不能显示。
2、边框不能撑开
如果父级设置了CSS边框属性(css border),由于子级里使用了float属性,产生浮动,父级不能被撑开,导致边框不能随内容而被撑开。
3、margin padding设置值不能正确显示
由于浮动导致父级子级之间设置了css padding、css margin属性的值不能正确表达。特别是上下边的padding和margin不能正确显示。
{clear:bothheight:0overflow:hidden}浮动什么意思呢,比如,默认的,我们知道,div是占满一行的,现在我们想把两个div显示在一行上,那怎么办呢\x0d\x0a111112222\x0d\x0a这样我们就设置了两个div,一个宽度100px,一个宽150px,可预览一下,我们的div仍在两行上,那么怎么把它改到一行上呢,这儿就需要float,设置第一个div的float为left\x0d\x0a111112222\x0d\x0a再预览,就可以看到,它们到一行上了。\x0d\x0aclear是什么意思呢,clear是清除的意思,它有三个值,left,right,both\x0d\x0a很好理解,如果设置了clear:left,它就不怕它的左边有float,同理clear:right,clear:both,是左右都不让有float\x0d\x0a举个例子,还是上面的\x0d\x0a我们设置第二个div的clear:left,也就是不让它左边有float\x0d\x0a111112222\x0d\x0a我们预览一下,就可以看到,尽管第一个div已经float:left了,这两个div仍然在两行上,就是由于第二个div不让它左边有float\x0d\x0a因为css的定义是后面的可以覆盖前面的,明白了吧 回答于 2022-12-11