Selectors
- Basic selectors
- Combinators
- Pseudo-class
:hover
:first-child
:nth-child()
::nth-child(2)
,:nth-child(2n)
- Pseudo-element
- Group of Selectors
Basic selectors
Element
h1 {
color: blue;
}
span {
font-weight: bold;
font-size: 1.2rem;
color: tomato;
}
<h1>Lorem ipsum dolor</h1>
<p>Lorem ipsum, <span>dolor</span> sit amet consectetur adipisicing elit. Id, quia...</p>
Output:
Lorem ipsum dolor
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Id, quia...
div {
color: tomato;
}
<h1>Lorem ipsum</h1>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit...</p>
<div>
<p>Expedita, officia rem, non nulla harum ut fugit optio explicabo temporibus eligendi...</p>
<p>Perferendis eaque ullam harum illum quas repudiandae dolore minima labore quod...</p>
</div>
Output:
Lorem ipsum dolor
Lorem ipsum dolor sit amet consectetur adipisicing elit...
Expedita, officia rem, non nulla harum ut fugit optio explicabo temporibus eligendi...
Perferendis eaque ullam harum illum quas repudiandae dolore minima labore quod...
#id
p {
color: green;
}
#first {
color: red;
}
<body>
<h1>Lorem ipsum</h1>
<p id="first">Lorem ipsum dolor sit amet, consectetur adipisicing elit...</p>
<p>Eveniet amet laudantium aperiam nisi ratione at, blanditiis...</p>
<p>Culpa possimus obcaecati laudantium nesciunt consequatur...</p>
</body>
Output:
Lorem ipsum
Lorem ipsum dolor sit amet, consectetur adipisicing elit...
Eveniet amet laudantium aperiam nisi ratione at, blanditiis...
Culpa possimus obcaecati laudantium nesciunt consequatur...
.class
p {
color: green;
}
.red {
color: red;
}
<body>
<h1>Lorem ipsum</h1>
<p class="red">Lorem ipsum dolor sit amet, consectetur adipisicing elit...</p>
<p>Culpa possimus obcaecati laudantium nesciunt consequatur...</p>
<p class="red">Eveniet amet laudantium aperiam nisi ratione at, blanditiis...</p>
</body>
Output:
Lorem ipsum
Lorem ipsum dolor sit amet, consectetur adipisicing elit...
Culpa possimus obcaecati laudantium nesciunt consequatur...
Eveniet amet laudantium aperiam nisi ratione at, blanditiis...
.class.class
.text-center {
text-align: center;
}
.red {
color: red;
}
h1.text-center.red {
font-size: 3rem;
}
<body>
<h1 class="red text-center">Lorem ipsum</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit...</p>
<p class="red">Eveniet amet laudantium aperiam nisi ratione at, blanditiis...</p>
<p>Culpa possimus obcaecati laudantium nesciunt consequatur...</p>
</body>
Combinators
Descendant combinator
examples/descendant-combinator.html:
header ul {
list-style-type: none;
}
<body>
<header>
<ul>
<li><a href="#">Menu 1</a></li>
<li><a href="#">Menu 2</a></li>
</ul>
</header>
<main>
<ul>
<li>Item 1</li>
<li>Item 2</li>
</ul>
</main>
</body>
Output:
CSS Question
What is the selection of
body li
? How many elements?
Pseudo-class
:hover
p:hover {
font-weight: bold;
}
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Soluta voluptatem ex autem incidunt, aut dolores veritatis nisi repellat perspiciatis nulla reiciendis eum doloribus fugit facere necessitatibus reprehenderit natus libero temporibus.</p>
Output:
:first-child
p:first-child {
color: green;
}
<body>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit...</p>
<p>Eveniet amet laudantium aperiam nisi ratione at, blanditiis...</p>
<p>Culpa possimus obcaecati laudantium nesciunt consequatur...</p>
</body>
Output:
Lorem ipsum dolor sit amet, consectetur adipisicing elit...
Eveniet amet laudantium aperiam nisi ratione at, blanditiis...
Culpa possimus obcaecati laudantium nesciunt consequatur...
:nth-child(2)
p:first-child {
color: red;
}
p:nth-child(2) {
color: green;
}
<body>
<h1>Lorem ipsum dolor</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit...</p>
<p>Eveniet amet laudantium aperiam nisi ratione at, blanditiis...</p>
<p>Culpa possimus obcaecati laudantium nesciunt consequatur...</p>
</body>
Output:
Lorem ipsum dolor
Lorem ipsum dolor sit amet, consectetur adipisicing elit...
Eveniet amet laudantium aperiam nisi ratione at, blanditiis...
Culpa possimus obcaecati laudantium nesciunt consequatur...
:nth-child(2n)
p:nth-child(2n) {
color: green;
}
<body>
<h1>Lorem ipsum dolor</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit...</p>
<p>Eveniet amet laudantium aperiam nisi ratione at, blanditiis...</p>
<p>Culpa possimus obcaecati laudantium nesciunt consequatur...</p>
</body>
Output:
Lorem ipsum dolor
Lorem ipsum dolor sit amet, consectetur adipisicing elit...
Eveniet amet laudantium aperiam nisi ratione at, blanditiis...
Culpa possimus obcaecati laudantium nesciunt consequatur...
CSS Question
Is it possible to inspect
:hover
?
Is it possible to replace:first-child
with:nth-child
?
Is it possible to replace general/adjacent sibling combinator selector with:nth-child
?
Is it possible to select odd or even elements?
Pseudo-element
::selection
p::selection {
color: white;
background-color: grey;
}
<h1>Lorem ispsum dolor</h1>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Soluta voluptatem ex autem incidunt, aut dolores veritatis nisi repellat perspiciatis nulla reiciendis eum doloribus fugit facere necessitatibus reprehenderit natus libero temporibus.</p>
Output:
Group of Selectors
elementname-1, elementname-2
h1, p