Universal CSS selector to match any and all HTML data-* attributes
It is currenly impossible to use wildcard masks to select elements by an attribute-name part.
There is a recent thread in the www-style@w3.org mailing list, where Simon Pieters from Opera has proposed a nice possible syntax that has got some acceptance in the thread, so there is a chance that it will become standard somewhen in the future:
x-admin-* { ... }
[data-my-*] { ... }
CSS selector for attribute names based on a wildcard
No, there is no wildcarding for attribute names in CSS selectors. All attribute selectors contain a specific name of an attribute.
Can I target all H tags with a single selector?
The new :is()
CSS pseudo-class can do it in one selector.
For example, here's how you could target all headings inside a container element:
.container :is(h1, h2, h3, h4, h5, h6)
{
color: red;
}
Most browsers now support :is()
, but keep in mind that most browsers made before 2020 didn't support it without a prefix, so be careful about using this if you need to support older browsers.
In some cases, you may instead want to use the :where()
pseudo-class, which is very similar to :is()
but has different specificity rules.
How can I find and select all elements which have data attribute start with specific word with using jquery?
var filteredElements = $('.wrapper > div').filter(function(){
var attrs = this.attributes;
for (var i=0; i<attrs.length; i++) {
if (attrs[i].name.indexOf("data-qu")==0) return true;
}
return false;
});
How do I apply a style to all children of an element
As commented by David Thomas, descendants of those child elements will (likely) inherit most of the styles assigned to those child elements.
You need to wrap your .myTestClass
inside an element and apply the styles to descendants by adding .wrapper *
descendant selector. Then, add .myTestClass > *
child selector to apply the style to the elements children, not its grand children. For example like this:
JSFiddle - DEMO
.wrapper * { color: blue; margin: 0 100px; /* Only for demo */}.myTestClass > * { color:red; margin: 0 20px;}
<div class="wrapper"> <div class="myTestClass">Text 0 <div>Text 1</div> <span>Text 1</span> <div>Text 1 <p>Text 2</p> <div>Text 2</div> </div> <p>Text 1</p> </div> <div>Text 0</div></div>
CSS Selector (A or B) and C?
is there a better syntax?
No. CSS' or
operator (,
) does not permit groupings. It's essentially the lowest-precedence logical operator in selectors, so you must use .a.c,.b.c
.
Related Topics
Why CSS Is Not Working When Sending HTML Email
CSS Target Just Class Name Starts with and Ends with String
Universal CSS Selector to Match Any and All HTML Data-* Attributes
Only CSS Rotate Box-Shadow Without Original Element
Google Fonts Font Doesn't Load
How to Split a String (E.G. a Long Url) in a Table Cell Using CSS
How to Style: Root Without !Important Using Proper Specificity
Chrome Will Increase The Font Size When Zooming Out
How to Do Math Within a Less CSS String Interpolation
Improving Balance in Flexbox Lines
Subresource Integrity When Using @Import
Internet Explorer 11 Wobbly CSS3 Animation