- From: François REMY via GitHub <sysbot+gh@w3.org>
- Date: Thu, 06 Oct 2016 20:30:24 +0000
- To: public-css-archive@w3.org
FremyCompany has just created a new issue for
https://github.com/w3c/csswg-drafts:
== [css-box-3][css-21] Positioning boxes with { float:left; width:0px;
} ==
A float is positioned according to various rules, whose following are
relevant in this case:
> • The outer top of an element's floating box may not be higher than
the top of any line-box
containing a box generated by an element earlier in the source
document.
> • A floating box must be placed as high as possible.
> • A left-floating box must be put as far to the left as possible, a
right-floating box as far to the right
as possible. A higher position is preferred over one that is further
to the left/right.
I guess how most browsers implement the first rule in code is:
> Whenever the line builder has to position a float whose width is
{NECESSARY}px in a line box that is
already {COMMITTED}px wide, in a constrained space of {AVAILABLE}px,
then the float can be placed to
the left of the line box if NECESSARY ≤ AVAILABLE - COMMITTED.
This isn't entirely true, though. In the case of 0px-wide floaters, it
is ALWAYS possible to put the floater on the same line as the current
one. This is what Edge implements. This is not what most others seems
to be doing in the case the line is "already too big" (for instance
contains an unbreakable word or a picture that is longer than the
container width).
In short, most browsers just decide to push the float beneath the
current line box based on the fact that
``` 0 ≤ 200 - 300 ⇔ 0 ≤ -100``` (a very well-known corollary of the
Zero Theorem). This is not a correct implementation of CSS 2.1 rules.
Should we file bugs on browsers here, or should we change the rules to
match Chrome and Firefox?
Please view or discuss this issue at
https://github.com/w3c/csswg-drafts/issues/576 using your GitHub
account
Received on Thursday, 6 October 2016 20:30:38 UTC