Select elements by attribute in CSS

Issue

Is it possible to select elements in CSS by their HTML5 data attributes (for example, data-role)?

Solution

If you mean using an attribute selector, sure, why not:

[data-role="page"] {
    /* Styles */
}

There are a variety of attribute selectors you can use for various scenarios which are all covered in the document I link to. Note that, despite custom data attributes being a "new HTML5 feature",

  • browsers typically don’t have any problems supporting non-standard attributes, so you should be able to filter them with attribute selectors; and

  • you don’t have to worry about CSS validation either, as CSS doesn’t care about non-namespaced attribute names as long as they don’t break the selector syntax.

Answered By – BoltClock

Answer Checked By – David Goodson (AngularFixing Volunteer)

Leave a Reply

Your email address will not be published.