float:left is not placed correctly when inside an empty position:relative. This is a regression from bug 209694. STEPS TO REPRODUCE: 1. Load testcase ACTUAL RESULTS: blue box is placed at the left edge of the viewport. EXPECTED RESULTS: blue box indented 1.5em from the left edge of the viewport.
Created attachment 167886 [details] Testcase #2 Adding a border, padding or an explicit height to the rel.pos. fixes it...
Roc's out and so he probably won't be getting to this in time for the alpha. Setting a nomination now for beta.
This was introduced by the change to nsBlockReflowContext::PlaceBlock in bug 209694. The empty block now goes through a codepath that doesn't do relative positioning and doesn't do correct horizontal alignment. That seems pretty wrong to me.... Robert, if you don't have time to look into this, please let me know and I will.
The only reason this worked before was because the non-empty overflow area stopped us from treating the block as empty --- which is definitely wrong. We have to fix up this code so that empty blocks are correctly aligned and relatively positioned.
Created attachment 172315 [details] [diff] [review] fix This patch merges all the code that should be in common for both empty and non-empty blocks.
12 years ago
Comment on attachment 172315 [details] [diff] [review] fix r+sr=bzbarsky