Can the :not() pseudo-class have multiple arguments?
Why :not just use two :not: input:not([type=”radio”]):not([type=”checkbox”]) Yes, it is intentional
Why :not just use two :not: input:not([type=”radio”]):not([type=”checkbox”]) Yes, it is intentional
Typically you add a class selector to the :not() pseudo-class like so: :not(.printable) { /* Styles */ } :not([attribute]) { /* Styles */ } But if you need better browser support (IE8 and older don’t support :not()), you’re probably better off creating style rules for elements that do have the “printable” class. If even that … Read more
One of the versions you posted actually works for all modern browsers (where CSS selectors level 3 are supported): div ul:not(:first-child) { background-color: #900; } If you need to support legacy browsers, or if you are hindered by the :not selector’s limitation (it only accepts a simple selector as an argument) then you can use … Read more
The ~ selector is in fact the subsequent-sibling combinator (previously called general sibling combinator until 2017): The subsequent-sibling combinator is made of the “tilde” (U+007E, ~) character that separates two sequences of simple selectors. The elements represented by the two sequences share the same parent in the document tree and the element represented by the … Read more
This is one of the most well-known examples of authors misunderstanding how :first-child works. Introduced in CSS2, the :first-child pseudo-class represents the very first child of its parent. That’s it. There’s a very common misconception that it picks up whichever child element is the first to match the conditions specified by the rest of the … Read more
You can check directly at the CSS grammar. Basically1, a name must begin with an underscore (_), a hyphen (-), or a letter(a–z), followed by any number of hyphens, underscores, letters, or numbers. There is a catch: if the first character is a hyphen, the second character must2 be a letter or underscore, and the … Read more
No, there is no “previous sibling” selector. On a related note, ~ is for general successor sibling (meaning the element comes after this one, but not necessarily immediately after) and is a CSS3 selector. + is for next sibling and is CSS2.1. See Adjacent sibling combinator from Selectors Level 3 and 5.7 Adjacent sibling selectors … Read more
There is currently no way to select the parent of an element in CSS, at least not a way that works across all browsers. If there was a way to do it, it would be in either of the current CSS selectors specs: Selectors Level 3 Spec CSS 2.1 Selectors Spec That said, the Selectors … Read more