Minimal CSS: Dropdown menu

Simple demo on how to develop CSS menu dropdowns with as little code as possible, while still maintaining proper accessibility support.

I love the idea of stripping away as much CSS as possible, while still maintaining the original UI concept. Let's do that with a simple menu dropdown.

Interesting facts about our final CSS menu:

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.


This site does not track you or collect analytics. More about privacy.
Help keep this blog ad-free by supporting it on Libreapay.
Built with Jekyll & hosted on Netlify.
Maintained with ♥ for the web.