blob: 49f77b3f8d3c937e2661cf19077c74d7b2a64b36 (
plain)
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
|
[[!meta title="Minimal CSS: Dropdown Menu"]]
[[!meta date="2019-04-26"]]
I love the idea of stripping away as much CSS as possible, while still maintaining the original UI concept. Let's build out a demo example with a simple menu dropdown element.
Interesting facts about our final CSS menu:
- Total weight 121 bytes minified! (not including any resets etc.)
- No complex HTML structures
- Accessibility support
Now to see the final code in all it's glory:
### HTML
<nav>
<ul>
<li><a href="">Home</a></li>
<li><a href="">About</a></li>
<li><a href="">Services</a>
<ul>
<li><a href="">Design</a></li>
<li><a href="">Development</a></li>
<li><a href="">Custom Pizzas</a></li>
</ul>
</li>
<li><a href="">Contact</a></li>
</ul>
</nav>
### CSS
/* resets - optional */
ul { list-style: none; padding: 0; }
ul li { display: inline-block; position: relative; }
/* minimal dropdown CSS */
ul li > ul {
left: -9999px;
position: absolute;
visibility: hidden;
}
ul li:hover > ul, ul li:focus-within > ul {
left: 0;
visibility: visible;
}
## Live demo on CodePen
Feel free to check out the live demo on CodePen [here](https://codepen.io/bradleytaunt/pen/MRLevy).
|