div+css背景颜色不显示

直接写代码吧
<div id="div1" style="width:670px; background:#ff0000;">
<div id="div2" style="width:330px; float:left">1111</div>
<div id="div3" style="width:330px; float:right">2222</div>
</div>
如果div1不设定height,他的背景颜色就显示不出来,这是为什么?
如果div2与div3不设置靠左或靠右,直接写在里面,背景就会显示出来,求原因,谢谢!~
在IE下面显示是没有问题的,火狐下面显示是没有背景的!~
sunmiao911的回答我理解,但是我说了:如果div2与div3如果不设置float属性就可以正常显示!~

回答 crazymaster:我肯定要背景啊,麻烦各位大虾看一下代码,我代码本意其实非常清楚了!~,其实说明白了就内div设置了靠左靠右就会让外围的DIV背景颜色不显示!`
那是薯郑因为前面的晌手念样式没有清除的原因,你只要家一行代码就可以了,在你使用了float属性的时候,为了不影响下面的样式,记得要clear:both一下:
如下:
<div id="div1"宴困 style="width:670px; background:#ff0000;">
<div id="div2" style="width:330px; float:left">1111</div>
<div id="div3" style="width:330px; float:right">2222</div>
<div id="div4" style="clear:both;"></div>
</div>
给了高度是是“面”才会填充背景颜色。
不给高度又无内容,那你相当于在里面亏液画了销誉物一条宽虚碰为670像素的“线”。
那么你运首咐芹激到底是要有背景还是不要背景。。。。被你搞晕了。建议你看一下www.52css.com这里有一些基本的框架结构旁纯的代码解析,或许对你有帮助。