-
Notifications
You must be signed in to change notification settings - Fork 0
/
33) Nesting.css
92 lines (79 loc) · 1.59 KB
/
33) Nesting.css
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
CSS nesting is the practice of placing selectors inside one another, providing a structured way to target and style specific HTML elements.
It reduces repetition, resulting in cleaner and more concise code.
CSS:
.parent {
color: black;
background-color: red;
& span {
color: blue;
}
}
This is equivalent to:
.parent {
color: black;
background-color: red;
}
.parent span {
color: blue;
}
The '&' is needed at the beginning of each selector for the nesting to be valid.
We can think of using '&' as referencing the parent selector.
Example:
HTML:
<header>
<div class="logo">
BB Academy
</div>
<nav class="menu">
<ul class="menu-list">
<li class="menu-item">
<a href="#">Home</a>
</li>
<li class="menu-item">
<a href="#">About</a>
</li>
<li class="menu-item">
<a href="#">Services</a>
</li>
<li class="menu-item">
<a href="#">Contact</a>
</li>
</ul>
</nav>
</header>
CSS:
header {
display: flex;
justify-content: space-between;
padding: 10px;
background-color: lightcyan;
}
.logo {
font-size: 2rem;
color: red;
&:hover {
color: blue;
}
}
.menu {
padding: 10px;
& .menu-list {
list-style: none;
margin: 0;
padding: 0;
& .menu-item {
display: inline-block;
margin-right: 20px;
& a {
text-decoration: none;
border: 1px solid black;
border-radius: 5px;
color: red;
padding: 10px;
&:hover {
background-color: blue;
color: white;
}
}
}
}