Skip to content
New issue

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

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

Already on GitHub? # to your account

[cssom] getComputedStyle for ::before::marker or ::after::marker #4456

Open
Loirooriol opened this issue Oct 28, 2019 · 6 comments
Open

[cssom] getComputedStyle for ::before::marker or ::after::marker #4456

Loirooriol opened this issue Oct 28, 2019 · 6 comments
Labels
Agenda+ cssom-1 Current Work

Comments

@Loirooriol
Copy link
Contributor

From https://drafts.csswg.org/cssom/#dom-window-getcomputedstyle, the signature is

getComputedStyle(elt, pseudoElt)

where pseudoElt is parsed as a <pseudo-element-selector>.

For example, ::before or ::marker are <pseudo-element-selector>s.

However, https://drafts.csswg.org/css-pseudo-4/#marker-pseudo allows ::before::marker and ::after::marker in stylesheets. These are not a single <pseudo-element-selector>, but it seems useful for authors to expose their styles via getComputedStyle.

So maybe we could allow one of these:

getComputedStyle(elt, "::before::marker")
getComputedStyle(elt, "::before", "::marker")
@Loirooriol Loirooriol added the cssom-1 Current Work label Oct 28, 2019
@Loirooriol
Copy link
Contributor Author

Loirooriol commented Oct 28, 2019

I guess there's also the 3rd possibility of allowing a CSSPseudoElement as the 1st argument, then

getComputedStyle(elt.pseudo("::before"), "::marker")
getComputedStyle(elt.pseudo("::before").pseudo("::marker"))

@AmeliaBR
Copy link
Contributor

Regarding these two options:

getComputedStyle(elt, "::before::marker")
getComputedStyle(elt, "::before", "::marker")

My first concern for the second case is that it is bad for compatibility/progressive enhancement: existing browsers will silently ignore the final parameter & just return the ::before styles, with no way to catch the difference.

However, now that I actually test it, it seems like the results for unrecognized selector strings aren't actually useful for catching the difference, either! See discussion in #3980.

@upsuper
Copy link
Member

upsuper commented Oct 31, 2019

I'm wondering whether we can just ban nested pseudo-element of this kind from being used as selector as a whole...

@Loirooriol
Copy link
Contributor Author

@upsuper There are various resolution in favour of nested pseudo-elements. See #3876 (comment) and #3836 (comment)

@Loirooriol
Copy link
Contributor Author

It would be good if the solutions here and in #4487 were consistent.

@khushalsagar
Copy link
Member

Seems like we can follow the footsteps of the resolution above and permit the same syntax for 'pseudoElt' in getComputedStyle?

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Agenda+ cssom-1 Current Work
Projects
None yet
Development

No branches or pull requests

4 participants