Mega Menu
Mega menu using flexbox with dynamic content.
by justincook
HTML
<ul class="mega-menu">
<li>
<a class="title">News</a>
<ul>
<li>Top Stories</li>
<li>Trending Stories</li>
<li>Sports</li>
<li>U.S.</li>
<li>Global</li>
</ul>
</li>
<li>
<a class="title">Shows</a>
<ul>
<li>HBO</li>
<li>CBS</li>
<li>NBC</li>
<li>CNN</li>
</ul>
</li>
<li>
<a class="title">Topics</a>
<ul>
<li>Top Stories</li>
<li>Trending Stories</li>
<li>Sports</li>
<li>U.S.</li>
<li>Global</li>
</ul>
</li>
<li>
<a class="title">Shows</a>
<ul>
<li>CBS</li>
<li>NBC</li>
</ul>
</li>
<li>
<a class="title">Networks</a>
<ul>
<li>HBO</li>
<li>CBS</li>
<li>NBC</li>
<li>CNN</li>
</ul>
</li>
<li>
<a class="title">Groups</a>
<ul>
<li>Top Stories</li>
<li>Trending Stories</li>
<li>Sports</li>
<li>U.S.</li>
<li>Global</li>
</ul>
</li>
<li>
<a class="title">Sections</a>
<ul>
<li>Top Stories</li>
<li>Trending Stories</li>
<li>Sports</li>
<li>U.S.</li>
<li>Global</li>
</ul>
</li>
<li>
<a class="title">Pilots</a>
<ul>
<li>HBO</li>
<li>CBS</li>
<li>NBC</li>
</ul>
</li>
<li>
<a class="title">Locations</a>
<ul>
<li>Denver</li>
<li>Baltimore</li>
<li>LA</li>
<li>New York</li>
<li>San Francisco</li>
<li>New Orleans</li>
<li>Jacksonville</li>
<li>Calvery</li>
<li>August</li>
</ul>
</li>
<li>
<a class="title">Cities</a>
<ul>
<li>Denver</li>
<li>Baltimore</li>
<li>LA</li>
<li>New York</li>
<li>San Francisco</li>
<li>New Orleans</li>
<li>Jacksonville</li>
<li>Calvery</li>
<li>August</li>
</ul>
</li>
<li>
<a class="title">News</a>
<ul>
<li>Top Stories</li>
...
CSS
*{
padding: 0; margin: 0;
}
body{
background: #ccc;
font-family: helvetica, arial;
color: #444;
}
ul {
list-style: none;
}
.mega-menu {
display: flex;
flex-direction: column;
flex-wrap: wrap;
padding: 15px;
height: 50vh;
background: #fff;
}
.mega-menu > li {
display: flex;
flex-direction: column;
font-size: .7rem;
padding-bottom: 15px;
}
.title {
font-size: .7rem;
font-weight: bold;
line-height: 1;
padding-bottom: 5px
}