我遇到了奇怪的CSS问题。 这个jsfiddle很好地展示了它。
HTML:
<div class="container" style="text-align: left;">
<div class="leftBox">
<div class="innerWrapper" style="background: gray;">Left</div>
</div>
<div class="rightBox">
<div class="innerWrapper" style="background: green;">Right</div>
</div>
</div>
<div class="container" style="text-align:center; background:red; ">Weird</div>
CSS:
.container {
width: 640px;
margin: 0 auto;
}
.leftBox {
width: 340px;
float: left;
}
.rightBox {
width: 300px;
float: left;
}
.innerWrapper {
width: 300px;
}
我不明白为什么较低的div会消耗较高的div之间的差距。 我希望它只消耗上面两列下面的“行”。
尝试了几种不同的定位和“voodos”,但没有任何帮助。
有什么想法吗?
感谢。
答案 0 :(得分:3)
你需要清除自己想要的元素,请参阅小提琴:http://jsfiddle.net/JT5HL/1/
或CSS:
.container {
clear: both;
width: 640px;
margin: 0 auto;
}
.leftBox {
width: 340px;
float: left;
}
.rightBox {
width: 300px;
float: left;
}
.innerWrapper {
width: 300px;
}
答案 1 :(得分:2)
将“ clear:both
”属性提供给您的“ .container ”类,这是旧方法。
SEE小提琴:* http://jsfiddle.net/KjtJu/1/ *
或者将新解决方案“ overflow: hidden;
”用于“ .container ”类
请参阅小提琴:http://jsfiddle.net/8M3L9/1/
答案 2 :(得分:1)
在<div class="clear"></div>
内的html中使用container div
在你的CSS中使用.clear{clear:both;}
。
<强> HTML:强>
<div class="container" style="text-align: left;">
...
<div class="clear"></div>
</div>
CSS:
.clear{clear:both;}
<强> DEMO 强>
答案 3 :(得分:1)
答案 4 :(得分:1)
<div class="container" style="text-align:center; background:red; clear:both; ">Weird</div>
答案 5 :(得分:0)
为什么不通过制作width: 320px;
来缩小左右之间的差距?
请参阅小提琴: http://jsfiddle.net/JT5HL/7/
或者你可以像这样height: 20px;
向容器添加一个高度,这将消除空间中的红色。
请参阅小提琴: http://jsfiddle.net/JT5HL/8/