开发者

Auto height and the float issue

开发者 https://www.devze.com 2023-01-02 22:41 出处:网络
I have had this issue before and can\'t remember if and how I fixed it. I have to create a scenario where I have 2 DIV\'s floated left and right inside a parent DIV. The 2 floating DIV\'s have height

I have had this issue before and can't remember if and how I fixed it.

I have to create a scenario where I have 2 DIV's floated left and right inside a parent DIV. The 2 floating DIV's have height:auto, but the parent ignores them (perfectly logical) and the background of the parent DIV can't be seen. I know what the issue is, but are there any suggestions of how to solve it? Or any alternatives, I am willing to try a new approach.

Tha开发者_JAVA技巧nks in advance for any help.


You need a clear:float in a div inside parent div:

.clear
{
  clear:both;
}

<div id="parent">
 <div id="left"></div>
 <div id="right"></div>

 <div class="clear"></div>
</div>

There are more options available to solve this problem.


With no meaningless HTML element to be added, you can clear floats the overflow way

<style type="text/css" media="screen">
    #allmychildrenfloat {
        overflow: hidden;
    }

    #allmychildrenfloat p {
        float: left;
    }
</style>
<div id="allmychildrenfloat">
    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec leo arcu, iaculis at, ultricies et, porta eget, urna. Nulla facilisi.</p>
    <p>dolor sit amet lorem ipsum</p>
</div>

Or you could use display: inline-block; instead of the float property, it depends on your exact needs. IE7- doesn't understand this value but it's OK if you give IE6 and 7 display: inline; zoom: 1;. And if you still support Fx 2, there is also an alternative.


I know , it's tooo late to answer this question but anyone who is coming here after me can benefit from this answer.

USE display: inline-flex instead of floats and be happy.

Note : you'll need to check for the support of inline-flex value

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号