Closed
Bug 33605
Opened 25 years ago
Closed 25 years ago
table overlaps preceding float
Categories
(Core :: Layout, defect, P3)
Tracking
()
VERIFIED
INVALID
People
(Reporter: decoy, Assigned: buster)
References
()
Details
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (Windows; N; Win95; en-US; m14)
BuildID: 2000032308
The example URL shows how an address element with just text in it is floated to
the right side. It overlaps with the table. No CSSP has been used, the CSS used is:
address {white-space:nowrap; text-align:right; float:right; white-space:nowrap;
margin:1ex 0 1ex 0;}
Reproducible: Always
Steps to Reproduce:
1.Go to the page
Expected Results: CSS float:right; implies display:block; When no CSSP is used,
block elements should not overlap.
Comment 3•25 years ago
|
||
The DUPE tree here is a mess. I'm going to re-evaluate this bug.
Gerv
Depends on: 39112
Comment 4•25 years ago
|
||
This URL currently crashes because of bug 27507 (nsbeta2+); will reevaluate this
when that is fixed
Depends on: 27507
On build 2000061308 using Windows 98, the page does not crash, and I can see the
bug being described.
Confirming status to NEW.
Status: UNCONFIRMED → NEW
Ever confirmed: true
This is actually probably correct according to the CSS spec, although the tables
section is vague. Probably some application of 'float-edge' for tables is
needed.
Summary: rendering of a floated block with just text produces overlap → table overlaps preceding float
I believe this bug is invalid. IE is doing the wrong thing, per spec. Section
9.5 of the CSS2 spec says:
------------------------------------------------------
Since a float is not in the flow, non-positioned block boxes created before and
after the float box flow vertically as if the float didn't exist. However, line
boxes created next to the float are
shortened to make room for the floated box. Any content in the current line
before a floated box is reflowed in the first available line on the other side
of the float.
Several floats may be adjacent, and this model also applies to adjacent floats
in the same line.
[some of spec omitted here]
A float can overlap other boxes in the normal flow (e.g., when a normal flow box
next to a float has negative margins). When an inline box overlaps with a float,
the content, background, and borders of the inline box are rendered in front of
the float. When a block box overlaps, the background and borders of the block
box are rendered behind the float and are only be visible where the box is
transparent. The content of the block box is rendered in front of the float.
------------------------------------------------------
No exception is made for tables.
I believe the proper coding for what you want on this site would have the
address be followed by a <br clear=all>, and the table would be floated. That
way, you are invoking the stacking rules for floaters, and the BR ensures the
address will be on a line by itself.
Marking Invalid. Adding keyword evangwanted in the hopes that someone contacts
the page author with the suggestion above.
Updated•24 years ago
|
Keywords: evangwanted
Comment 9•21 years ago
|
||
Maybe I'm being a bit dumb here - as a page designer, how do I avoid this
problem? I have a page with a floated DIV on the right hand side, and a table
defined after it in the HTML. I want to make the table shift down to below the
DIV only in the case where the table would overlap the DIV (as it does by
default in IE, which you describe as incorrect). Obviously a <br clear=all>
would move it down in all cases, but normally it isn't necessary.
Also, what is 'float-edge'? I can't find any references to that that explain it
in any detail.
You need to log in
before you can comment on or make changes to this bug.
Description
•