Multi-level dropdown

by Abhay Singh

HTML

<ul class="nav site-nav">
    <li><a href=#>Lorem</a></li><!--
 --><li><a href=#>Ipsum</a></li><!--
 --><li class=flyout>
    
        <a href=#>Dolor</a>
        
        <!-- Flyout -->
        <ul class="flyout-content nav stacked">
            <li><a href=#>Foo Bar</a></li>
            <li><a href=#>Bar Baz</a></li>
            <li class="flyout-alt">
                
                <a href=#>Baz Foo</a>
                
                <!-- Flyout -->
                <ul class="flyout-content nav stacked">
                    <li><a href=#>Foo Bar</a></li>
                    <li><a href=#>Bar Baz</a></li>
                    <li class="flyout-alt">
                        
                        <a href=#>Baz Foo</a>
                        
                        <!-- Flyout -->
                        <ul class="flyout-content nav stacked">
                            <li class="flyout-alt">
                                
                                <a href=#>Foo Bar</a>
                                
                                <!-- Flyout -->
                                <ul class="flyout-content nav stacked">
                                    <li><a href=#>Bar Baz</a></li>
                                    <li class="flyout-alt">
                                        
                                        <a href=#>Baz Foo</a>
                                        
                                        <!-- Flyout -->
                                        <ul class="flyout-content nav stacked">
                                            <li><a href=#>Bar Baz</a></li>
                                            <li><a href=#>Baz Foo</a></li>
                                            <li><a href=#>Foo Bar</a></li>
                                        </ul>
                                    
                                    </li>
                                    <li><a href=#>Foo Bar</a></li>
                 ...

CSS

/*------------------------------------*\
    $HOUSEKEEPING
\*------------------------------------*/
*{ margin:0; padding:0; }
html{
    padding:5%;
    font:1em/1.5 Georgia, serif;
    overflow-y:scroll;
}
ul{
    margin-bottom:1.5em;
    margin-left:1.5em;
}
a{
    text-decoration:none;
}





/*------------------------------------*\
    $NAV
\*------------------------------------*/
/**
 * Throw any `ul` or `ol` into horizontal mode, as per csswizardry.com/2011/09/the-nav-abstraction.
   <ul class=nav>
       <li><a href=/>Home</a></li>
       <li><a href=/about>About</a></li>
       <li><a href=/portfolio>Portfolio</a></li>
       <li><a href=/contact>Contact</a></li>
   </ul>
 */
.nav{
    list-style:none;
    margin-left:0;
}
    .nav > li,
        .nav > li > a{
            display:inline-block;
           *display:inline;
            zoom:1;
        }
    .stacked > li{
        display:list-item;
    }
        .stacked > li > a{
            display:block;
    }
.flyout,
.flyout-alt{
    position:relative;
}
    .flyout-content{
       
        position:absolute;
        top:100%;
        left:-99999px;
        height:0;
        overflow:hidden;
    }
    
    
    .flyout:hover > .flyout-content{
        left:0;
    }
    
    .flyout-alt:hover > .flyout-content{
        top:0;
        left:100%;
    }
    .flyout:hover > .flyout-content,
    .flyout-alt:hover > .flyout-content{
        height:auto;
        overflow:visible;
    }
.site-nav{
    font-size:0.75em;
    font-family:sans-serif;
}
        .site-nav a{
            line-height:1;
            padding:1em;
            background-color:#09f;
            color:#fff;
            white-space:nowrap;
        }
        .site-nav .flyout:hover > a /* [1] */,
.site-nav .flyout-alt:hover > a /* [1] */,
.site-nav a:hover{
    color:#435704;
    background-color:#BADA55;
}
.site-nav .flyout-alt > a:after{
    content:" »";
}

.site-nav a,
.site-nav .flyout-content{
    border:0 solid #fff;
}
.site-nav > li >...

JavaScript

/**
 * Infinitely nestable dropdown menu by @csswizardry
 * twitter.com/csswizardry
 */