Closed
Bug 33605
Opened 24 years ago
Closed 24 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•24 years ago
|
||
The DUPE tree here is a mess. I'm going to re-evaluate this bug. Gerv
Depends on: 39112
Comment 4•24 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
•