- From: Bert Bos <Bert.Bos@sophia.inria.fr>
- Date: Tue, 11 Jan 2000 20:25:11 +0100 (MET)
- To: Allan Odgaard <Duff@DIKU.DK>
- Cc: www-style@w3.org
Allan Odgaard writes:
> OK, one more question: Had the floating object been the tallest, would the
> following element than have been closed without first 'flushing' any floats?
> E.g.
>
> ###################
> #+--------+ Small #
> #|Big box | box! #
> #|of much |########
> |text |
> |floating|
> |here... |
> +--------+
Yes, this is correct.
>
> If this is the case then which exceptions exist? I.e. I assume that table-cells
> should flush any floating objects, before the box is closed. And the same
> should probably also apply to other floating objects, and maybe absolute
> placed objects?
I don't think it has been specified explicitly anywhere, but
implementations indeed seem to treat tables that way. Seems reasonable
to me. Tables are already complicated enough. Same for a float inside
a float.
I don't think the same holds for absolute positioning. What exactly
would you "flush"?
>
>
> Another thing I've been considering is whether this markup:
> <P>Hello <Div Style="float: left">Floating text...</Div>World!</P>
> Should be rendered as:
>
> Hello world!
> +--------+
> |Floating|
> |text... |
> +--------+
>
> Or instead:
>
> Hello
> +--------+world!
> |Floating|
> |text... |
> +--------+
Neither, in fact. It should be like this:
+--------+Hello
|Floating|world!
|text... |
+--------+
since the float fits without moving it down to the next line.
Many browsers still don't do this, probably because they
reverse-engineered Netscape when it first introduced floating images,
before CSS became a standard.
Oh, and btw: the mark-up is invalid :-) You cannot put a DIV inside a
P. But if you change it to a SPAN the example will work again.
>
> I suspect it's the first way, but this gives a problem (in the implementation)
> if the text after the float changes the line-height. I.e. when I see the
> floating object I'll place it below the current linebox of the containing
> object. But if more text is added to this linebox, it may grow in height, and
> the position given to the floating object is wrong (it should be pushed down
> the same amount of space as the linebox gained)
Yes, I know the problem. Somehow you'll have to postpone the placement
of the float.
Bert
--
Bert Bos ( W 3 C ) http://www.w3.org/
http://www.w3.org/people/bos/ W3C/INRIA
bert@w3.org 2004 Rt des Lucioles / BP 93
+33 (0)4 92 38 76 92 06902 Sophia Antipolis Cedex, France
Received on Tuesday, 11 January 2000 14:25:16 UTC