I have the following in my CSS. All margins/paddings/borders are globally reset to 0.
#wrapper{width: 75%; min-width: 800px;}
.content{text-align: justify; float: right; width: 90%;}
.lbar{text-align: justify; float: left; width: 10%;}
Now when I write my HTML as
<div id="wrapper">
<div class="content">
some text here
</div>
<div class="lbar">
some text here
</div>
</div>
the page renders correctly. However, when I inspect the elements, div#wrapper
is shown as being 0px
high. I would've expected it to expand till the end of div.content
and div.lbar
... Why does this happen?
Again, the page renders fine. This behaviour just perplexes me.
Ordinarily, float
s aren't counted in the layout of their parents.
To prevent that, add overflow: hidden
to the parent.
I'm not sure this is a right way but I solved it by adding display: inline-block;
to the wrapper div.
#wrapper{
display: inline-block;
/*border: 1px black solid;*/
width: 75%;
min-width: 800px;
}
.content{
text-align: justify;
float: right;
width: 90%;
}
.lbar{
text-align: justify;
float: left;
width: 10%;
}
Now, you can
#wrapper { display: flow-root; }
Source: Stackoverflow.com