Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upImplement `position: absolute` #787
Comments
|
Needed for #1366. |
|
mentor: @larsbergstrom @JoonWonLee @pradeep90 @ksh8281 are working on this |
|
@larsbergstrom I've been reading the CSS reference to get all the details for absolute positioning. I'll go through the Servo meeting notes pertaining to multiple display lists and containing block info. I will start coding after that. |
|
Just to update my status: I've started implementing position absolute. |
|
@pradeep90 Absolute positioning has a lot in common with fixed positioning (it’s almost a subset), which @ibnc is working on. See #782 and other issues linked from there, and talk to each other to avoid duplicating work :) |
|
@SimonSapin Yeah... fixed positioning is basically a special case of absolute positioning :) @ibnc just want to bring you into the loop so that there is no duplication of effort here. My plan is to implement absolute positioning by the end of next week. |
|
Yeah, my implementation of position fixed isn't perfect. I intend to come back and fix/clean it up. @pradeep90 Cool. I don't really see duplication being an issue, but I'll look for the PR and comment if I see anything :) I didn't have any plans of working on stacking context unless I had to; go for it :) |
+ Re-implement fixed positioning using the absolute positioning code. + Add reftests for absolute positioning and fixed positioning. + Refactor assign_widths in BlockFlow to isolate the calculation of widths and margins. + Pass down details of the Containing Block for absolute and fixed flows during layout. Use it to calculate the static position of absolute flows. + Defer calculation of absolute flow dimensions till we build the display list. This implements #1537 and #787
|
Fixed. |
…elements (from pradeep90:absolute-position); r=pcwalton + Re-implement fixed positioning using the absolute positioning code. + Add reftests for absolute positioning and fixed positioning. + Refactor assign_widths in BlockFlow to isolate the calculation of widths and margins. + Pass down details of the Containing Block for absolute and fixed flows during layout. Use it to calculate the static position of absolute flows. + Defer calculation of absolute flow dimensions till we build the display list. This implements servo/servo#1537 and servo/servo#787 Source-Repo: https://github.com/servo/servo Source-Revision: ada9224d0ef5b403562ebaaeb2e5f66729ffc589 UltraBlame original commit: e0ea27b18ffa174cf01fa1716652bc5f42f4fa3e
…elements (from pradeep90:absolute-position); r=pcwalton + Re-implement fixed positioning using the absolute positioning code. + Add reftests for absolute positioning and fixed positioning. + Refactor assign_widths in BlockFlow to isolate the calculation of widths and margins. + Pass down details of the Containing Block for absolute and fixed flows during layout. Use it to calculate the static position of absolute flows. + Defer calculation of absolute flow dimensions till we build the display list. This implements servo/servo#1537 and servo/servo#787 Source-Repo: https://github.com/servo/servo Source-Revision: ada9224d0ef5b403562ebaaeb2e5f66729ffc589 UltraBlame original commit: e0ea27b18ffa174cf01fa1716652bc5f42f4fa3e
…elements (from pradeep90:absolute-position); r=pcwalton + Re-implement fixed positioning using the absolute positioning code. + Add reftests for absolute positioning and fixed positioning. + Refactor assign_widths in BlockFlow to isolate the calculation of widths and margins. + Pass down details of the Containing Block for absolute and fixed flows during layout. Use it to calculate the static position of absolute flows. + Defer calculation of absolute flow dimensions till we build the display list. This implements servo/servo#1537 and servo/servo#787 Source-Repo: https://github.com/servo/servo Source-Revision: ada9224d0ef5b403562ebaaeb2e5f66729ffc589 UltraBlame original commit: e0ea27b18ffa174cf01fa1716652bc5f42f4fa3e
Absolute positioning is needed for Acid2 lines 4 and 5 as well as a lot of Web sites.
Requires #1532 and #1537 and #1538