Simple selectors: select elements based on name, id, class
The CSS element Selector
p { text-align: center; color: red; }
The CSS id Selector
#para1 { text-align: center; color: red; }
The CSS class Selector
.center { text-align: center; color: red; }
p.center { text-align: center; color: red; }
<p class="center large">This paragraph refers to two classes.</p>
The CSS Universal Selector
* { text-align: center; color: blue; }
The CSS Grouping Selector
h1 { text-align: center; color: red; } h2 { text-align: center; color: red; } p { text-align: center; color: red; }
h1, h2, p { text-align: center; color: red; }
CSS Combinators
Descendant Selector
The descendant selector matches all elements that are descendants of a specified element.
The following example selects all <p> elements inside <div> elements:
div p { background-color: yellow; }
Child Selector (>)
div > p { background-color: yellow; }
Adjacent Sibling Selector (+)
The adjacent sibling selector is used to select an element that is directly after another specific element.
Sibling elements must have the same parent element, and “adjacent” means “immediately following”.
The following example selects the first <p> element that are placed immediately after <div> elements:
div + p { background-color: yellow; }
General Sibling Selector (~)
The general sibling selector selects all elements that are next siblings of a specified element.
The following example selects all <p> elements that are next siblings of <div> elements:
div ~ p { background-color: yellow; }
CSS Pseudo-classes
Anchor Pseudo-classes
Links can be displayed in different ways:
/* unvisited link */ a:link { color: #FF0000; } /* visited link */ a:visited { color: #00FF00; } /* mouse over link */ a:hover { color: #FF00FF; } /* selected link */ a:active { color: #0000FF; }
Pseudo-classes and HTML Classes
Pseudo-classes can be combined with HTML classes:
When you hover over the link in the example, it will change color:
a.highlight:hover { color: #ff0000; }
Hover on <div>
An example of using the :hover
pseudo-class on a <div> element:
div:hover { background-color: blue; }
Simple Tooltip Hover
Hover over a <div> element to show a <p> element (like a tooltip):
Hover over me to show the <p> element.
p { display: none; background-color: yellow; padding: 20px; } div:hover p { display: block; }
CSS – The :first-child Pseudo-class
The :first-child
pseudo-class matches a specified element that is the first child of another element.
Match the first <p> element
In the following example, the selector matches any <p> element that is the first child of any element:
p:first-child { color: blue; }
Match the first <i> element in all <p> elements
In the following example, the selector matches the first <i> element in all <p> elements:
p:first-child i { color: blue; }
CSS – The :lang Pseudo-class
The :lang
pseudo-class allows you to define special rules for different languages.
In the example below, :lang
defines the quotation marks for <q> elements with lang=”no”:
<html> <head> <style> q:lang(no) { quotes: "~" "~"; } </style> </head> <body> <p>Some text <q lang="no">A quote in a paragraph</q> Some text.</p> </body> </html>
The ::first-line Pseudo-element
The ::first-line
pseudo-element is used to add a special style to the first line of a text.
The following example formats the first line of the text in all <p> elements:
p::first-line { color: #ff0000; font-variant: small-caps; }
Note: The ::first-line
pseudo-element can only be applied to block-level elements.
The following properties apply to the ::first-line
pseudo-element:
- font properties
- color properties
- background properties
- word-spacing
- letter-spacing
- text-decoration
- vertical-align
- text-transform
- line-height
- clear
Notice the double colon notation – ::first-line
versus :first-line
The double colon replaced the single-colon notation for pseudo-elements in CSS3. This was an attempt from W3C to distinguish between pseudo-classes and pseudo-elements.
The single-colon syntax was used for both pseudo-classes and pseudo-elements in CSS2 and CSS1.
For backward compatibility, the single-colon syntax is acceptable for CSS2 and CSS1 pseudo-elements.
The ::first-letter Pseudo-element
The ::first-letter
pseudo-element is used to add a special style to the first letter of a text.
The following example formats the first letter of the text in all <p> elements:
p::first-letter { color: #ff0000; font-size: xx-large; }
Note: The ::first-letter
pseudo-element can only be applied to block-level elements.
The following properties apply to the ::first-letter pseudo- element:
- font properties
- color properties
- background properties
- margin properties
- padding properties
- border properties
- text-decoration
- vertical-align (only if “float” is “none”)
- text-transform
- line-height
- float
- clear
No Responses