- From: Alan Gresley <alan@css-class.com>
- Date: Sun, 06 Feb 2011 01:12:35 +1100
- To: Anton Prowse <prowse@moonhenge.net>
- CC: www-style@w3.org, Васил Рангелов <boen.robot@gmail.com>
On 5/02/2011 11:42 PM, Anton Prowse wrote:
> On 05/02/2011 02:08, fantasai wrote:
>>> the positioned element appears to have a height equal to the one of
>>> the floated element.
This is correct.
> The reason is quite simple: div.positioned "starts" at the top of the
> content area of body, since the float is out of flow and doesn't
> influence the location of div.positioned. Hence the float and
> div.positioned intersect. (This is very typical of floats and
> surrounding in-flow elements.) Now, div.cleared is empty and has zero
> height. If you remove the clear:left, its parent div.positioned has zero
> height. But with clear:left, div.cleared sits flush with the bottom of
> the float, "forcing" div.positioned to have positive height equal to the
> height of the float. (The thing that Васил might have been confused
> about is that div.position doesn't get "dragged down" with div.cleared;
> its top remains at the top of the content area of body. The situation
> would be quite different if it were div.positioned which had clear:left
> rather than its child.)
Anton, how can this be normal? This is not what clear: left is supposed
to do. Try this test.
<!DOCTYPE html>
<style type="text/css">
.floated { float:left; background: lime; font-size: 300%; }
.wrap { background: salmon; }
.cleared { clear:left; }
.normal { background: blue; }
</style>
<body><div class="floated">float</div><div class="wrap"><div
class="cleared"></div></div><div class="normal">Normal block</div></body>
How it it possible for the div.wrap to grow as big as the float? It's
like it inheriting the float height.
--
Alan http://css-class.com/
Armies Cannot Stop An Idea Whose Time Has Come. - Victor Hugo
Received on Saturday, 5 February 2011 14:14:13 UTC