54 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			54 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: Pseudo | ||
|  | --- | ||
|  | # Pseudo Selectors
 | ||
|  | 
 | ||
|  | Pseudo selectors provide a way to target elements using pseudo classes or pseudo elements. | ||
|  | 
 | ||
|  | ## Structural Pseudo Classes
 | ||
|  | Structural Pseudo classes offer a way to target elements based on their position. | ||
|  | 
 | ||
|  | Class     | Description | ||
|  | ---------|------------ | ||
|  | `:root`                                        | Root of the document. In the context of HTML documents, this would be `html` tag at the top. It could mean different elements in other documents such as XML or SVG. | ||
|  | `:only-child` | An element that is the only child of its parent element. | ||
|  | `:first-child` | First child of a parent. | ||
|  | `:last-child` | Last child of a parent element. | ||
|  | `:nth-child(n)` | n-th child of its parent. | ||
|  | `:nth-last-child(n)` | n-th child from the last child. The reverse of `:nth-child`. | ||
|  | `:only-of-type` | The only element of the type within its siblings with other types. | ||
|  | `:first-of-type` | The first element of the type among its siblings. | ||
|  | `:last-of-type` | The last element of the type among its siblings. | ||
|  | `:nth-of-type(n)` | n-th sibling of the same type.  | ||
|  | `:nth-last-of-type(n)` | n-th sibling of the same type from the last one. The reverse of `:nth-of-type`. | ||
|  | `:empty` | An element without any child elements. | ||
|  | 
 | ||
|  | ## UI State Pseudo Classes
 | ||
|  | UI state pseudo classes offer a way to target elements based on their current state. | ||
|  | 
 | ||
|  | Class     | Description | ||
|  | ---------|------------ | ||
|  | `:link` | Unvisited link elements. | ||
|  | `:visited` | A link visited already. | ||
|  | `:hover` | An element over which mouse pointer is hovering. | ||
|  | `:active` | An element on which mouse pointer has been clicked, but not yet released. | ||
|  | `:focus` | An element that has focus. Important for accessibility, for example, while using `tab` key for navigation. | ||
|  | `:enabled` | An element that is in enabled state. | ||
|  | `:disabled` | An element that has been disabled. | ||
|  | `:checked` | A selected Checkbox or Radio button. | ||
|  | 
 | ||
|  | ## Pseudo elements
 | ||
|  | Pseudo elements on the other hand, are dynamically generated elements or elements at a special place.  | ||
|  | 
 | ||
|  | Selector     | Description | ||
|  | ---------|------------ | ||
|  | `::first-line` | First line of an element, usually a container or paragraph. | ||
|  | `::first-letter` | A letter of an element. Widely used for styling drop-caps. | ||
|  | `::before` | A dynamic element created with content of its own before the actual element. | ||
|  | `::after` | A dynamic element created with content of its own after the actual element. | ||
|  | 
 | ||
|  | ## More Information:
 | ||
|  | Additional information can be found on below references. | ||
|  | 
 | ||
|  | * [Official CSS3 Selector specification](https://www.w3.org/TR/css3-selectors/#structural-pseudos) | ||
|  | * [Mozilla developer network page on selectors](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors) |