I .Steps: ----------- 1. Go to: http://auto.qianlong.com/ II. Issue: ----------------- Notice the heading of the sections outside the border. Also the marquee extends outside the border. III. Other browsers: ----------------- IE, FF, Opera: NO issue. Safari: has above mentioned issue.
Created attachment 16533 [details] white-space:nowrap causes marquee to extend outside the border
I wonder if this is relate to or even a duplicate of bug 15218.
Ok, I've reduced this further. It looks like we don't correctly "disconnect" the <marquee> block from its parent, and thus allow it to force its parent cell to wider than it should be.
Created attachment 18498 [details] reduced test case
Created attachment 18508 [details] even more reduced case (FF2 "passes", FF3 "fails", Safari3 "fails") Bah! It looks like FF3 changed FF's behavior here to match ours. I've reduced the test case to remove any whitespace from the marquee.
I've confirmed with the original page. FF3 renders the <marquee> on the original page exactly like Safari3 does. FF2 renders the marquee as the author intended. To fix this, we'll need to understand why FF3 changed their <td>/<marquee> sizing behavior.
This was also interesting. From Marquee::updateMarqueeStyle(): // Hack alert: Set the white-space value to nowrap for horizontal marquees with inline children, thus ensuring // all the text ends up on one line by default. Limit this hack to the <marquee> element to emulate // WinIE's behavior. Someone using CSS3 can use white-space: nowrap on their own to get this effect. // Second hack alert: Set the text-align back to auto. WinIE completely ignores text-align on the // marquee element. // FIXME: Bring these up with the CSS WG. if (isHorizontal() && m_layer->renderer()->childrenInline()) { s->setWhiteSpace(NOWRAP); s->setTextAlign(TAAUTO); }
Created attachment 460481 [details] Safari 15.5 differs from other browsers I am able to reproduce this bug based on attached test case in Safari 15.5 on macOS 12.4 As can be seen in the screenshot, the table <td> width is enough to show bit text pass on due to <marquee> pass-on (by coincidence, I captured when there was no text in marquee) but other browser match each other (Chrome Canary and Firefox Nightly). Thanks!