Bug 138146 - CSS "display: table" formats improperly
Summary: CSS "display: table" formats improperly
Status: RESOLVED FIXED
Alias: None
Product: konqueror
Classification: Applications
Component: khtml renderer (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR normal (vote)
Target Milestone: ---
Assignee: Konqueror Developers
URL:
Keywords:
: 95088 (view as bug list)
Depends on:
Blocks:
 
Reported: 2006-11-30 12:43 UTC by Maciej J . Woloszyk
Modified: 2007-01-25 21:06 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Maciej J . Woloszyk 2006-11-30 12:43:23 UTC
Version:           3.5.5 (using KDE 3.5.5, Gentoo)
Compiler:          Target: i686-pc-linux-gnu
OS:                Linux (i686) release 2.6.16-gentoo-r13

When opening http://www.merlin.com.pl/ you get messed-up display - the text under the orange "Klienci Merlina polecaja" (and also below that) is put on top (or maybe it's below) of images. It looks that the problem is in http://www.merlin.com.pl/css/new/layout4.css ".rightSection" class declaration - there is "display: table;" there and it seems to mess up the rendering - when I saved page and layout and removed this declaration text is placed a bit off, but it's not rendered on the images. What's more interesting is that sometimes when the page loads everything looks fine until you move mouse and then the text moves to the left.
Comment 1 Tommi Tervo 2006-11-30 12:54:17 UTC
Could you make a small test case?
Comment 2 Maciej J . Woloszyk 2006-11-30 14:12:01 UTC
Hmmm... I tried to make the smallest test case showing the problem and what I fount is that the problem is probably somewhere in JavaScript.

Test case can be seen here: http://www.janussa.pl/138146-testcase/

It should load and look like this: http://www.janussa.pl/138146-testcase/snap1.jpg

Then when you move your mouse over the images, links etc. texts suddenly jump to the left and then it looks like this:

http://www.janussa.pl/138146-testcase/snap2.jpg

Offender seems to be somewhere in the file http://www.janussa.pl/138146-testcase/skrypt2.js (which is the original file cut down to the minimum).

m.
Comment 3 Allan Sandfeld 2006-11-30 14:41:08 UTC
I get the same problem even without the javascript. 

Something makes the relayout on mouseover act differently.
Comment 4 Maciej J . Woloszyk 2006-11-30 14:47:49 UTC
Ok. Didn't catched that... When cuting down the code I thought that removing scripts solved the problem... Now I can see it is something with styles - it acts the same without script or even with js disabled. Here is the test case without script: http://www.janussa.pl/138146-testcase/index1.html , and here: http://www.janussa.pl/138146-testcase/index2.html is the same without "display: table" in "rightSection" class.

m.
Comment 5 Maksim Orlovich 2006-11-30 15:18:58 UTC
Very weird --- for me your reduced versions render fine, but the website doesn't....
Comment 6 Maciej J . Woloszyk 2006-11-30 15:22:13 UTC
Problem is that this happens in kin of random fashion - when creating testcase I have a lot of problems to identify what is absolutely necessary to show the problem. Try loading testcase a few times and move mouse pointer over it - it should show up.

m.
Comment 7 Maksim Orlovich 2006-11-30 15:26:19 UTC
Tommi pointed out a way for me to reproduce it --- clicking on the image... Still, it just happens on the original.... Let's see if VG says anything..
Comment 8 Allan Sandfeld 2006-11-30 16:45:17 UTC
I never see it when first loaded. Only when after hovering a link or opening DOM viewer
Comment 9 Germain Garand 2007-01-02 10:29:01 UTC
SVN commit 618830 by ggarand:

table objects always flowAroundFloats
BUG: 138146


 M  +1 -0      render_table.cpp  


--- branches/KDE/3.5/kdelibs/khtml/rendering/render_table.cpp #618829:618830
@@ -84,6 +84,7 @@
     ETableLayout oldTableLayout = style() ? style()->tableLayout() : TAUTO;
     if ( _style->display() == INLINE ) _style->setDisplay( INLINE_TABLE );
     if ( _style->display() != INLINE_TABLE ) _style->setDisplay(TABLE);
+    if ( !_style->flowAroundFloats() ) _style->setFlowAroundFloats(true);
     RenderBlock::setStyle(_style);
 
     // init RenderObject attributes
Comment 10 Germain Garand 2007-01-25 21:06:20 UTC
*** Bug 95088 has been marked as a duplicate of this bug. ***