I've recently been doing a little studying on CSS selectors and have run into a question regarding the new "data-*" attributes.
I understand that in order to select elements with a data attribute there are a few ways of going about it:
[data-something='value']{...} // data-something has value = 'value'
[data-something^='value']{...} // data-something has value that STARTS with 'value'
[data-something*='value']{...} // data-something has value with 'value SOMEWHERE in it
There are other variations of these, but my question pertains to CSS selectors that can target elements that simply HAVE a "data" attribute. More specifically, is there a CSS selector that can target elements that have ANY "data" attribute at all?
While incorrect, I'm thinking of something like:
[data]{...}
I've been searching through Google but haven't found anything regarding a generic selector for the attribute yet.
As you have pointed out, there are multiple ways to target the value of an HTML attribute.
But there is only one way to target the attribute name itself:
Hence, there are currently no methods for wildcarding attribute names:
source: W3C Selectors Level 3 Specification
From another answer to a similar question:
No, there is no wildcarding for attribute names in CSS selectors. All attribute selectors contrain a specific name of an attribute.
YES, you can select all elements that have any value of a specified attribute:
[
type] selects all elements that have a type="anything". attribute