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)
							 |