Reputation: 4360
I have a wrapper <div>
which contains two inner <div>
s that are floating.
<div class="outside" style="border:1px solid #555;">
<div class="inside" style="float:left; width:40px;">CONTENT</div>
<div class="inside2" style="float:left; width:40px;">CONTENT</div>
</div>
The problem is the wrapper <div>
has width of 80px since two inner <div>
are 40px each. But always the wrapper <div>
is 0px
in height which makes the border appear like a line at the top.
So I placed the two inner <div>
s inside a <table>
. It worked well. But how do I avoid this problem without going for a <table>
?
Upvotes: 17
Views: 17227
Reputation: 37178
Set overflow: hidden
on the parent.
<div class="outside" style="border:1px solid #555;overflow:hidden;">
<div class="inside" style="float:left; width:40px;">CONTENT</div>
<div class="inside2" style="float:left; width:40px;">CONTENT</div>
</div>
Upvotes: 49
Reputation: 28793
The outer div
is collapsing because the two child div
s inside of it are floating. The easiest fix for this is to set overflow: hidden;
on the outer div
.
Upvotes: 10
Reputation: 6627
Try this:
<div class="outside" style="border:1px solid #555; overflow:auto">
<div class="inside" style="float:left; width:40px;">CONTENT</div>
<div class="inside2" style="float:left; width:40px;">CONTENT</div>
</div>//Outside container close
Upvotes: 2