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

[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
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?

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

No branches or pull requests

4 participants