Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"position: fixed" list-item missing bullet #8001

Open
eefriedman opened this issue Oct 13, 2015 · 16 comments
Open

"position: fixed" list-item missing bullet #8001

eefriedman opened this issue Oct 13, 2015 · 16 comments

Comments

@eefriedman
Copy link
Contributor

@eefriedman eefriedman commented Oct 13, 2015

Testcase:

<!DOCTYPE html>
<html>
<body>
<ul>
<li style="position: fixed">x
</ul>
</body>
</html>

The addition of "position: fixed" in this testcase shouldn't affect the rendering at all. Probably easy to fix, unless there's some complication I'm missing; see

(_, _, position::T::fixed) => {
.

@jdm jdm added the A-layout/inline label Oct 13, 2015
@craftytrickster
Copy link
Contributor

@craftytrickster craftytrickster commented Oct 16, 2015

The li tag is never closed after the x. I haven't tried to reproduce this yet since I am not at my computer, but is it possible that closing the li will fix this?

<li style="position: fixed">x
@jdm
Copy link
Member

@jdm jdm commented Oct 16, 2015

No, the HTML parser should close that tag implicitly when it sees the </ul>, according to https://html.spec.whatwg.org/multipage/syntax.html#closing-elements-that-have-implied-end-tags .

@craftytrickster
Copy link
Contributor

@craftytrickster craftytrickster commented Oct 16, 2015

Good to know, thank you.

@craftytrickster
Copy link
Contributor

@craftytrickster craftytrickster commented Oct 18, 2015

I think I may have some time to look into this one

@craftytrickster
Copy link
Contributor

@craftytrickster craftytrickster commented Oct 19, 2015

I was looking at this today, and as eefriedman suggested, the pattern matching looked incorrect to me as well.

craftytrickster@be54c80

I made a change in my own branch as seen above. Prior to my change, the list item node was always getting matched and called with build_flow_for_block instead of with build_flow_for_list_item. Nevertheless, I still have not been able to figure out why the bullet isn't appearing on screen.

What is also strange to me is that in the fn build_flow_for_list_item function in the same file, the let text = format!("{}\u{a0}", ch); seems to be evaluating to show the bullet point as the text. Unfortunately, it still doesn't render despite that.

I'll have to investigate more. If I am missing anything obvious here, I'm always open to suggestions!

@eefriedman
Copy link
Contributor Author

@eefriedman eefriedman commented Oct 19, 2015

I took a brief look; it's possible that the we're properly constructing the bullet, but not positioning/drawing it correctly. Does list-style-position: inside on the <li> make a difference?

@craftytrickster
Copy link
Contributor

@craftytrickster craftytrickster commented Oct 19, 2015

When I added list-style-position: inside;, I was able to see the bullet render.

@eefriedman
Copy link
Contributor Author

@eefriedman eefriedman commented Oct 19, 2015

Okay, that makes sense... the difference happens at

list_style_position::T::outside => {
. An inside bullet uses much less special-case code.

Maybe try playing with -Z dump-flow-tree and -Z dump-display-list to see what's happening for outside bullets?

@craftytrickster
Copy link
Contributor

@craftytrickster craftytrickster commented Oct 19, 2015

Thanks for the pointer, I hope to have time to look at this later

@craftytrickster
Copy link
Contributor

@craftytrickster craftytrickster commented Oct 21, 2015

I can't seem to figure this out. I notice that in fn flush_inline_fragments_to_flow_or_list, if the bullet is called with an outside style it only has once item of fragments.fragments (it is missing the bullet fragment), yet when it is called with inside, it has both the bullet fragment as well as the x fragment. However, I lose the trail after that.

@glennw
Copy link
Member

@glennw glennw commented Oct 21, 2015

Could you run with -Z dump-flow-tree,dump-display-list for both the inside and outside case, and paste that information here? I wonder if the layer size is incorrect for the outside case or something like that.

@eefriedman
Copy link
Contributor Author

@eefriedman eefriedman commented Oct 21, 2015

I took a look with craftytrickster/servo@be54c80; there's multiple things going wrong here:

  1. The bullet is somehow getting positioned relative to the block, so it ends up to the right of the "x". I think this has something to do with the implementation of compute_absolute_position on ListItemFlow, and maybe a couple of other layout methods which have stubbed-out implementations. This is closely related to #8074.
  2. We aren't computing the overflow correctly for list-items, so the bullet is getting clipped. This is #8118.
@eefriedman
Copy link
Contributor Author

@eefriedman eefriedman commented Oct 21, 2015

It's probably worth submitting a PR just to fix the list-style-position: inside; case; we don't have to fix everything at once.

@craftytrickster
Copy link
Contributor

@craftytrickster craftytrickster commented Oct 21, 2015

Thanks for placing the summary. I am still new to Rust and Servo, so it is good to get additional insight. I can do display tree / list output when I get home tonight. As for the PR, I if it is helpful, I can at least open it now.

@craftytrickster
Copy link
Contributor

@craftytrickster craftytrickster commented Oct 21, 2015

Outside (bullet point is missing)

+ Block - 7fbfd20a7f90: frag=(12 SpecificFragmentInfo::Generic bb LogicalRect(, i800px×b616px, @ (i0px,b0px)) bp LogicalMargin(, inline: 0px..0px block: 0px..0px) m LogicalMargin(, inline: 0px..0px block: 0px..0px)) (@ LogicalRect(, i800px×b616px, @ (i0px,b0px)), CC 1, ADC 1, Ovr Rect(800px×616px at (0px,0px)))
| + Block - 7fbfd20a7d10: frag=(6 SpecificFragmentInfo::Generic bb LogicalRect(, i784px×b0px, @ (i8px,b0px)) bp LogicalMargin(, inline: 0px..0px block: 0px..0px) m LogicalMargin(, inline: 8px..8px block: 8px..8px)) (@ LogicalRect(, i800px×b0px, @ (i0px,b0px)), CC 1, ADC 0, Ovr Rect(784px×0px at (8px,0px)))
| | + Block - 7fbfd20a7a90: frag=(3 SpecificFragmentInfo::Generic bb LogicalRect(, i784px×b0px, @ (i0px,b0px)) bp LogicalMargin(, inline: 40px..0px block: 0px..0px) m LogicalMargin(, inline: 0px..0px block: 16px..16px)) (@ LogicalRect(, i784px×b0px, @ (i8px,b0px)), CC 1, ADC 0, Ovr Rect(784px×0px at (0px,0px)))
| | | + ListItemFlow { block_flow: Block - 7fbfd20a7810: frag=(2 SpecificFragmentInfo::Generic bb LogicalRect(, i8px×b18.616666666666667px, @ (i0px,b0px)) bp LogicalMargin(, inline: 0px..0px block: 0px..0px) m LogicalMargin(, inline: 0px..0px block: 0px..0px)) (@ LogicalRect(, i8px×b18.616666666666667px, @ (i40px,b0px)), CC 1, ADC 0, Ovr Rect(8px×18.616666666666667px at (0px,0px))), marker_fragments: [(1 SpecificFragmentInfo::ScannedText bb LogicalRect(, i14px×b18.616666666666667px, @ (i-14px,b0px)) bp LogicalMargin(, inline: 0px..0px block: 0px..0px) m LogicalMargin(, inline: 0px..0px block: 0px..0px) "• ")] }
| | | | + Inline - 7fbfd204c390 - Ovr Rect(8px×18.616666666666667px at (0px,0px)) - 
  * (0 SpecificFragmentInfo::ScannedText bb LogicalRect(, i8px×b18.616666666666667px, @ (i0px,b0px)) bp LogicalMargin(, inline: 0px..0px block: 0px..0px) m LogicalMargin(, inline: 0px..0px block: 0px..0px) "x")
+ Block - 7fbfd20a7f90: frag=(12 SpecificFragmentInfo::Generic bb LogicalRect(, i800px×b616px, @ (i0px,b0px)) bp LogicalMargin(, inline: 0px..0px block: 0px..0px) m LogicalMargin(, inline: 0px..0px block: 0px..0px)) (@ LogicalRect(, i800px×b616px, @ (i0px,b0px)), CC 1, ADC 1, Ovr Rect(800px×616px at (0px,0px)))
| + Block - 7fbfd20a7d10: frag=(6 SpecificFragmentInfo::Generic bb LogicalRect(, i784px×b0px, @ (i8px,b0px)) bp LogicalMargin(, inline: 0px..0px block: 0px..0px) m LogicalMargin(, inline: 8px..8px block: 8px..8px)) (@ LogicalRect(, i800px×b0px, @ (i0px,b0px)), CC 1, ADC 0, Ovr Rect(784px×0px at (8px,0px)))
| | + Block - 7fbfd20a7a90: frag=(3 SpecificFragmentInfo::Generic bb LogicalRect(, i784px×b0px, @ (i0px,b0px)) bp LogicalMargin(, inline: 40px..0px block: 0px..0px) m LogicalMargin(, inline: 0px..0px block: 16px..16px)) (@ LogicalRect(, i784px×b0px, @ (i8px,b0px)), CC 1, ADC 0, Ovr Rect(784px×0px at (0px,0px)))
| | | + ListItemFlow { block_flow: Block - 7fbfd20a7810: frag=(2 SpecificFragmentInfo::Generic bb LogicalRect(, i8px×b18.616666666666667px, @ (i0px,b0px)) bp LogicalMargin(, inline: 0px..0px block: 0px..0px) m LogicalMargin(, inline: 0px..0px block: 0px..0px)) (@ LogicalRect(, i8px×b18.616666666666667px, @ (i40px,b0px)), CC 1, ADC 0, Ovr Rect(8px×18.616666666666667px at (0px,0px))), marker_fragments: [(1 SpecificFragmentInfo::ScannedText bb LogicalRect(, i14px×b18.616666666666667px, @ (i-14px,b0px)) bp LogicalMargin(, inline: 0px..0px block: 0px..0px) m LogicalMargin(, inline: 0px..0px block: 0px..0px) "• ")] }
| | | | + Inline - 7fbfd204c390 - Ovr Rect(8px×18.616666666666667px at (0px,0px)) - 
  * (0 SpecificFragmentInfo::ScannedText bb LogicalRect(, i8px×b18.616666666666667px, @ (i0px,b0px)) bp LogicalMargin(, inline: 0px..0px block: 0px..0px) m LogicalMargin(, inline: 0px..0px block: 0px..0px) "x")
┌ DisplayList
│  ├─ StackingContext at Rect(800px×616px at (0px,0px)) with overflow Rect(800px×616px at (0px,0px)):
│  │  ├─ Block Backgrounds and Borders
│  │  │  ├─ SolidColor rgba(0, 0, 0, 0) @ Rect(800px×616px at (0px,0px)) (7ff59806f1f0)
│  │  │  ├─ SolidColor rgba(0, 0, 0, 0) @ Rect(784px×0px at (8px,0px)) (7ff59806f250)
│  │  │  └─ SolidColor rgba(0, 0, 0, 0) @ Rect(784px×0px at (8px,0px)) (7ff59806f2b0)
│  │  ├─ Layers
│  │  │  ├─ Layered StackingContext at Rect(8px×18.616666666666667px at (48px,0px)) with overflow Rect(8px×18.616666666666667px at (0px,0px)):
│  │  │  │  ├─ Backgrounds and Borders
│  │  │  │  │  └─ SolidColor rgba(0, 0, 0, 0) @ Rect(8px×18.616666666666667px at (0px,0px)) (7ff59806f310)
│  │  │  │  ├─ Content
│  │  │  │  │  ├─ Text @ Rect(14px×18.616666666666667px at (34px,0px)) (7ff59806f310)
│  │  │  │  │  └─ Text @ Rect(8px×18.616666666666667px at (0px,0px)) (7ff59806f370)
┌ DisplayList
│  ├─ StackingContext at Rect(800px×616px at (0px,0px)) with overflow Rect(800px×616px at (0px,0px)):
│  │  ├─ Block Backgrounds and Borders
│  │  │  ├─ SolidColor rgba(0, 0, 0, 0) @ Rect(800px×616px at (0px,0px)) (7ff59806f1f0)
│  │  │  ├─ SolidColor rgba(0, 0, 0, 0) @ Rect(784px×0px at (8px,0px)) (7ff59806f250)
│  │  │  └─ SolidColor rgba(0, 0, 0, 0) @ Rect(784px×0px at (8px,0px)) (7ff59806f2b0)
│  │  ├─ Layers
│  │  │  ├─ Layered StackingContext at Rect(8px×18.616666666666667px at (48px,0px)) with overflow Rect(8px×18.616666666666667px at (0px,0px)):
│  │  │  │  ├─ Backgrounds and Borders
│  │  │  │  │  └─ SolidColor rgba(0, 0, 0, 0) @ Rect(8px×18.616666666666667px at (0px,0px)) (7ff59806f310)
│  │  │  │  ├─ Content
│  │  │  │  │  ├─ Text @ Rect(14px×18.616666666666667px at (34px,0px)) (7ff59806f310)
│  │  │  │  │  └─ Text @ Rect(8px×18.616666666666667px at (0px,0px)) (7ff59806f370)

@craftytrickster
Copy link
Contributor

@craftytrickster craftytrickster commented Oct 21, 2015

Inside (bullet point is present)

+ Block - 7fabf4c74f90: frag=(12 SpecificFragmentInfo::Generic bb LogicalRect(, i800px×b616px, @ (i0px,b0px)) bp LogicalMargin(, inline: 0px..0px block: 0px..0px) m LogicalMargin(, inline: 0px..0px block: 0px..0px)) (@ LogicalRect(, i800px×b616px, @ (i0px,b0px)), CC 1, ADC 1, Ovr Rect(800px×616px at (0px,0px)))
| + Block - 7fabf4c74d10: frag=(6 SpecificFragmentInfo::Generic bb LogicalRect(, i784px×b0px, @ (i8px,b0px)) bp LogicalMargin(, inline: 0px..0px block: 0px..0px) m LogicalMargin(, inline: 8px..8px block: 8px..8px)) (@ LogicalRect(, i800px×b0px, @ (i0px,b0px)), CC 1, ADC 0, Ovr Rect(784px×0px at (8px,0px)))
| | + Block - 7fabf4c74a90: frag=(3 SpecificFragmentInfo::Generic bb LogicalRect(, i784px×b0px, @ (i0px,b0px)) bp LogicalMargin(, inline: 40px..0px block: 0px..0px) m LogicalMargin(, inline: 0px..0px block: 16px..16px)) (@ LogicalRect(, i784px×b0px, @ (i8px,b0px)), CC 1, ADC 0, Ovr Rect(784px×0px at (0px,0px)))
| | | + ListItemFlow { block_flow: Block - 7fabf4c74810: frag=(2 SpecificFragmentInfo::Generic bb LogicalRect(, i22px×b18.616666666666667px, @ (i0px,b0px)) bp LogicalMargin(, inline: 0px..0px block: 0px..0px) m LogicalMargin(, inline: 0px..0px block: 0px..0px)) (@ LogicalRect(, i22px×b18.616666666666667px, @ (i40px,b0px)), CC 1, ADC 0, Ovr Rect(22px×18.616666666666667px at (0px,0px))), marker_fragments: [] }
| | | | + Inline - 7fabf4c5d390 - Ovr Rect(22px×18.616666666666667px at (0px,0px)) - 
  * (1 SpecificFragmentInfo::ScannedText bb LogicalRect(, i14px×b18.616666666666667px, @ (i0px,b0px)) bp LogicalMargin(, inline: 0px..0px block: 0px..0px) m LogicalMargin(, inline: 0px..0px block: 0px..0px) "• ")
  * (0 SpecificFragmentInfo::ScannedText bb LogicalRect(, i8px×b18.616666666666667px, @ (i14px,b0px)) bp LogicalMargin(, inline: 0px..0px block: 0px..0px) m LogicalMargin(, inline: 0px..0px block: 0px..0px) "x")
+ Block - 7fabf4c74f90: frag=(12 SpecificFragmentInfo::Generic bb LogicalRect(, i800px×b616px, @ (i0px,b0px)) bp LogicalMargin(, inline: 0px..0px block: 0px..0px) m LogicalMargin(, inline: 0px..0px block: 0px..0px)) (@ LogicalRect(, i800px×b616px, @ (i0px,b0px)), CC 1, ADC 1, Ovr Rect(800px×616px at (0px,0px)))
| + Block - 7fabf4c74d10: frag=(6 SpecificFragmentInfo::Generic bb LogicalRect(, i784px×b0px, @ (i8px,b0px)) bp LogicalMargin(, inline: 0px..0px block: 0px..0px) m LogicalMargin(, inline: 8px..8px block: 8px..8px)) (@ LogicalRect(, i800px×b0px, @ (i0px,b0px)), CC 1, ADC 0, Ovr Rect(784px×0px at (8px,0px)))
| | + Block - 7fabf4c74a90: frag=(3 SpecificFragmentInfo::Generic bb LogicalRect(, i784px×b0px, @ (i0px,b0px)) bp LogicalMargin(, inline: 40px..0px block: 0px..0px) m LogicalMargin(, inline: 0px..0px block: 16px..16px)) (@ LogicalRect(, i784px×b0px, @ (i8px,b0px)), CC 1, ADC 0, Ovr Rect(784px×0px at (0px,0px)))
| | | + ListItemFlow { block_flow: Block - 7fabf4c74810: frag=(2 SpecificFragmentInfo::Generic bb LogicalRect(, i22px×b18.616666666666667px, @ (i0px,b0px)) bp LogicalMargin(, inline: 0px..0px block: 0px..0px) m LogicalMargin(, inline: 0px..0px block: 0px..0px)) (@ LogicalRect(, i22px×b18.616666666666667px, @ (i40px,b0px)), CC 1, ADC 0, Ovr Rect(22px×18.616666666666667px at (0px,0px))), marker_fragments: [] }
| | | | + Inline - 7fabf4c5d390 - Ovr Rect(22px×18.616666666666667px at (0px,0px)) - 
  * (1 SpecificFragmentInfo::ScannedText bb LogicalRect(, i14px×b18.616666666666667px, @ (i0px,b0px)) bp LogicalMargin(, inline: 0px..0px block: 0px..0px) m LogicalMargin(, inline: 0px..0px block: 0px..0px) "• ")
  * (0 SpecificFragmentInfo::ScannedText bb LogicalRect(, i8px×b18.616666666666667px, @ (i14px,b0px)) bp LogicalMargin(, inline: 0px..0px block: 0px..0px) m LogicalMargin(, inline: 0px..0px block: 0px..0px) "x")
┌ DisplayList
│  ├─ StackingContext at Rect(800px×616px at (0px,0px)) with overflow Rect(800px×616px at (0px,0px)):
│  │  ├─ Block Backgrounds and Borders
│  │  │  ├─ SolidColor rgba(0, 0, 0, 0) @ Rect(800px×616px at (0px,0px)) (7f2a9286f1f0)
│  │  │  ├─ SolidColor rgba(0, 0, 0, 0) @ Rect(784px×0px at (8px,0px)) (7f2a9286f250)
│  │  │  └─ SolidColor rgba(0, 0, 0, 0) @ Rect(784px×0px at (8px,0px)) (7f2a9286f2b0)
│  │  ├─ Layers
│  │  │  ├─ Layered StackingContext at Rect(22px×18.616666666666667px at (48px,0px)) with overflow Rect(22px×18.616666666666667px at (0px,0px)):
│  │  │  │  ├─ Backgrounds and Borders
│  │  │  │  │  └─ SolidColor rgba(0, 0, 0, 0) @ Rect(22px×18.616666666666667px at (0px,0px)) (7f2a9286f310)
│  │  │  │  ├─ Content
│  │  │  │  │  ├─ Text @ Rect(14px×18.616666666666667px at (0px,0px)) (7f2a9286f310)
│  │  │  │  │  └─ Text @ Rect(8px×18.616666666666667px at (14px,0px)) (7f2a9286f370)
┌ DisplayList
│  ├─ StackingContext at Rect(800px×616px at (0px,0px)) with overflow Rect(800px×616px at (0px,0px)):
│  │  ├─ Block Backgrounds and Borders
│  │  │  ├─ SolidColor rgba(0, 0, 0, 0) @ Rect(800px×616px at (0px,0px)) (7f2a9286f1f0)
│  │  │  ├─ SolidColor rgba(0, 0, 0, 0) @ Rect(784px×0px at (8px,0px)) (7f2a9286f250)
│  │  │  └─ SolidColor rgba(0, 0, 0, 0) @ Rect(784px×0px at (8px,0px)) (7f2a9286f2b0)
│  │  ├─ Layers
│  │  │  ├─ Layered StackingContext at Rect(22px×18.616666666666667px at (48px,0px)) with overflow Rect(22px×18.616666666666667px at (0px,0px)):
│  │  │  │  ├─ Backgrounds and Borders
│  │  │  │  │  └─ SolidColor rgba(0, 0, 0, 0) @ Rect(22px×18.616666666666667px at (0px,0px)) (7f2a9286f310)
│  │  │  │  ├─ Content
│  │  │  │  │  ├─ Text @ Rect(14px×18.616666666666667px at (0px,0px)) (7f2a9286f310)
│  │  │  │  │  └─ Text @ Rect(8px×18.616666666666667px at (14px,0px)) (7f2a9286f370)

bors-servo added a commit that referenced this issue Oct 27, 2015
Made block type pattern match less inclusive

Given the comments above the match statement, it seems that fixed-pos check should match only block elements in this case. Doing this change seems to partially resolve the issue where list items with `position:fixed;` styling are not displaying their bullet points. This change only resolves the issue for list items with `list-style-position: inside`, outside positioning is still not functioning correctly. 

#8001 (comment)

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8129)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue Oct 27, 2015
Made block type pattern match less inclusive

Given the comments above the match statement, it seems that fixed-pos check should match only block elements in this case. Doing this change seems to partially resolve the issue where list items with `position:fixed;` styling are not displaying their bullet points. This change only resolves the issue for list items with `list-style-position: inside`, outside positioning is still not functioning correctly. 

#8001 (comment)

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8129)
<!-- Reviewable:end -->
jrmuizel pushed a commit to jrmuizel/gecko-cinnabar that referenced this issue Jun 12, 2017
…om craftytrickster:pos-fixed-list-item); r=glennw

Given the comments above the match statement, it seems that fixed-pos check should match only block elements in this case. Doing this change seems to partially resolve the issue where list items with `position:fixed;` styling are not displaying their bullet points. This change only resolves the issue for list items with `list-style-position: inside`, outside positioning is still not functioning correctly.

servo/servo#8001 (comment)

Source-Repo: https://github.com/servo/servo
Source-Revision: 381317f658bbfd66674cc1e92b27c86503ca7d31
gecko-dev-updater pushed a commit to marco-c/gecko-dev-comments-removed that referenced this issue Oct 1, 2019
…om craftytrickster:pos-fixed-list-item); r=glennw

Given the comments above the match statement, it seems that fixed-pos check should match only block elements in this case. Doing this change seems to partially resolve the issue where list items with `position:fixed;` styling are not displaying their bullet points. This change only resolves the issue for list items with `list-style-position: inside`, outside positioning is still not functioning correctly.

servo/servo#8001 (comment)

Source-Repo: https://github.com/servo/servo
Source-Revision: 381317f658bbfd66674cc1e92b27c86503ca7d31

UltraBlame original commit: 21b579e9cc0bb86384d7e4889aa17912c49d04b9
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified-and-comments-removed that referenced this issue Oct 1, 2019
…om craftytrickster:pos-fixed-list-item); r=glennw

Given the comments above the match statement, it seems that fixed-pos check should match only block elements in this case. Doing this change seems to partially resolve the issue where list items with `position:fixed;` styling are not displaying their bullet points. This change only resolves the issue for list items with `list-style-position: inside`, outside positioning is still not functioning correctly.

servo/servo#8001 (comment)

Source-Repo: https://github.com/servo/servo
Source-Revision: 381317f658bbfd66674cc1e92b27c86503ca7d31

UltraBlame original commit: 21b579e9cc0bb86384d7e4889aa17912c49d04b9
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified that referenced this issue Oct 1, 2019
…om craftytrickster:pos-fixed-list-item); r=glennw

Given the comments above the match statement, it seems that fixed-pos check should match only block elements in this case. Doing this change seems to partially resolve the issue where list items with `position:fixed;` styling are not displaying their bullet points. This change only resolves the issue for list items with `list-style-position: inside`, outside positioning is still not functioning correctly.

servo/servo#8001 (comment)

Source-Repo: https://github.com/servo/servo
Source-Revision: 381317f658bbfd66674cc1e92b27c86503ca7d31

UltraBlame original commit: 21b579e9cc0bb86384d7e4889aa17912c49d04b9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
4 participants
You can’t perform that action at this time.