CSS Selector with Example
This section will cover details of CSS selector with various example and description in tabular view.
Attribute Selectors
It provides a way to target elements not just by their type, class, or ID, but also by their attributes.
| Syntax | Example | Explanation | 
|---|---|---|
| [attribute=value] | [for="email"] | All elements with a for="email" attribute | 
| [attribute^=value] | button[value^="Go"] | All <button> elements whose value attribute starts with "Go" | 
| [attribute$=value] | img[src$=".png"] | All <img> elements whose src attribute ends with ".jpg" | 
| [attribute*=value] | img[alt*="Computer"] | All <a> elements whose alt attribute contains the substring "Computer" | 
| [attribute~=value] | [title~=create] | All elements whose title attribute contains the word "create", delimited by spaces. | 
| [attribute|=value] | [lang|=nl] | All elements whose lang attribute is a hyphen-separated list starting with "nl" or "nl-" | 
Pseudo-classes and Pseudo-elements Selectors
Pseudo-class selectors select elements by psuedo-class. It is commonly combined with element selectors, such as input:enabled.
| Pseudo Selector Name | Example | Explanation | 
|---|---|---|
| :active | a:active | All active links | 
| :visited | a:visited | All visited links | 
| :link | a:link | All unvisited links | 
| ::after | ul::after | Add cosmetic content after each <ul> element | 
| ::before | ul::before | Add cosmetic content before each <ul> element | 
| :checked | input:checked | All <input> elements that are checked | 
| :default | input:default | All <input> elements that are specified as default | 
| :enabled | input:enabled | All <input> elements that are enabled | 
| :disabled | input:disabled | All <input> elements that are disabled | 
| :valid | input:valid | All <input> input elements with a valid value | 
| :invalid | input:invalid | All <input> elements with an invalid value | 
| :in-range | input:in-range | All <input> elements with a value that is within a specified range | 
| :out-of-range | input:out-of-range | All <input> elements with a value outside the specified range | 
| :indeterminate | input:indeterminate | All <input> elements that are in an indeterminate state | 
| :required | input:required | All <input> elements with a "required" attribute | 
| :optional | input:optional | All <input> elements with no "required" attribute | 
| :read-only | input:read-only | All <input> elements with a "readonly" attribute | 
| :read-write | input:read-write | All <input> elements without a "readonly" attribute | 
| ::placeholder | input::placeholder | All <input> elements with placeholder text | 
| :hover | input:hover | The <input> element that currently being hovered | 
| :focus | input:focus | The <input> element that currently has focus | 
| :empty | ol:empty | All <ol> element without child elements | 
| :first-child | li:first-child | All <li> elements that are the first child of their parent | 
| :last-child | li:last-child | All <li> elements that are the last child of their parent | 
| :nth-child(n) | li:nth-child(2) | All <li> elements that are second child of their parent | 
| :nth-last-child(n) | li:nth-last-child(2) | All <li> elements that are second to last child of their parent | 
| :only-child | li:only-child | All <li> elements that are the only child of its parent | 
| :first-of-type | label:first-of-type | All <label> elements that are the first label of their parent | 
| :last-of-type | label:last-of-type | All <label> elements that are the last label of their parent | 
| :nth-of-type(n) | label:nth-of-type(2) | All <label> elements that are the second label of their parent | 
| :nth-last-of-type(n) | label:nth-last-of-type(2) | All <label> elements that are the second to last label of their parent | 
| :only-of-type | label:only-of-type | All <label> elements that are the only label element of their parent | 
| ::first-letter | p::first-letter | The first letter of every <p> element | 
| ::first-line | p::first-line | The first line of every <p> element | 
| :lang(language) | p:lang(bn) | All Bangla <p> elements | 
| :not(selector) | :not(table) | All elements that are not a <table> element | 
| :root | :root | The document’s root element | 
| ::selection | ::selection | Parts of an element that is selected (highlighted) by the user — usually text | 
| :target | :target | The element that matches the url fragment, e.g. element with id="list" when the url is hmtmcse.com#list. |