We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 3540
    • 5 Posts
    Hi Everyone

    Thought I would share this for people who want a really really quick and elegant wayfinder menu.

    I made a css solution for nested lists, that requires absolutely NO css in the html - no template crap, no id’s, no classes, just really basic default semantic nested lists.

    http://blake.ecenturyserver.co.uk/purecss_dropdown.html

    So simply wrap your wayfinder call in container and menu inner id’s like such:

    <div id="menu_container">
           <div id="menu_inner">
    
              [[Wayfinder? &startId=`0`  &level=`2`]]
    
             </div>
           </div>
    


    And voila, you have a horizontal list nav for top tier, second is a vertical drop down, then all subsequent children slide out the side.

    Perfect!

    Let me know what you all think - hope it is useful!

    complete code follows:::


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <!--<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />-->
    <!-- 
    
        | Made by Blake Williams - 13 may 2010 :: [email protected]
        | Tested in IE(7&8), firefox, Opera, Safari, Chrome, Sleipnir, flock - yadda yadda 
        | 
        | Pure CSS drop down / slide out menu with NO body css Classes or ID's
        | This baby is INIFINITE
    	
    -->
    <title>Blakes Pure CSS Drop Down / Slide-out Menu</title>
    <style type="text/css">
    
    	* {margin:0; padding:0;}
    	#menu_container {height:44px;margin:50px auto;border:1px solid #06C;width:1000px;}
    	#menu_inner {padding:0 0 0 20px;}
    	/* set up the base level horizontal nav */
    	#menu_inner ul,#menu_inner li {list-style:none;position:relative;}
    	#menu_inner > ul li {float:left;}
    	#menu_inner a {text-decoration:none;display:block;font:14px Arial, Helvetica, sans-serif;color:#000;padding:14px 20px;}
    	#menu_inner a:hover {background:#f00;color:#fff;}
    	/* the second tier - to default to no display */
    	#menu_inner li > ul,#menu_inner li > ul li {display:none;}
    	#menu_inner li > ul {border:1px solid #09F;border-top:1px solid #06C;width:220px;}
    	/* pseudo selector of li makes it visible */
    	#menu_inner li:hover > ul {display:block;position:absolute;}
    	#menu_inner li > ul li {background:#fff;color:#000;position:relative;display:block;}
    	#menu_inner li > ul li a {color:#000;border-bottom:1px dotted #CCC;width:200px;padding:10px;}
    	#menu_inner li > ul li a:hover {background:#ccc;}
    	/* After the second tier, the rest need to pop out of the side - as a default I have chosen to slide to the right */
    	#menu_inner li > ul li > ul {position:absolute;left:220px;top:-1px;display:none;}/* left = width of children */
    	#menu_inner li > ul li:hover > ul {position:absolute;left:220px;top:-1px;display:block;}/* this should inherit BUT if you take out redundant styles there are glitches */
    
    </style>
    </head>
    <body>
    <div id="menu_container">
      <div id="menu_inner">
        <ul>
            <li><a href="#">Level 1</a></li>	
            <li><a href="#">Level 1</a></li>	
            <li><a href="#">Level 1</a>
            	<ul>
                    <li><a href="#">Level 2</a></li>	
                    <li><a href="#">Level 2</a></li>	
                    <li><a href="#">Level 2</a></li>
                    <li><a href="#">Level 2</a></li>	
                    <li><a href="#">Level 2</a></li>	
                    <li><a href="#">Level 2</a></li>
                    <li><a href="#">Level 2</a></li>	
                </ul>
            </li>
            <li><a href="#">Level 1</a></li>	
            <li><a href="#">Level 1</a></li>	
            <li><a href="#">Level 1</a>
            	<ul>
                    <li><a href="#">Level 2</a></li>	
                    <li><a href="#">Level 2</a>
                    	<ul>
                            <li><a href="#">Level 3</a></li>	
                            <li><a href="#">Level 3</a></li>	
                            <li><a href="#">Level 3</a></li>
                            <li><a href="#">Level 3</a></li>	
                            <li><a href="#">Level 3</a>
                            	<ul>
                                    <li><a href="#">Level 4</a></li>	
                                    <li><a href="#">Level 4</a></li>	
                                    <li><a href="#">Level 4</a></li>
                                    <li><a href="#">Level 4</a>
                                    	<ul>
                                            <li><a href="#">Level 5</a></li>	
                                            <li><a href="#">Level 5</a></li>	
                                            <li><a href="#">Level 5</a></li>
                                            <li><a href="#">Level 5</a></li>	
                                            <li><a href="#">Level 5</a></li>	
                                            <li><a href="#">Level 5</a></li>
                                            <li><a href="#">Level 5</a></li>	
                                        </ul>
                                    </li>	
                                    <li><a href="#">Level 4</a></li>	
                                    <li><a href="#">Level 4</a></li>
                                    <li><a href="#">Level 4</a></li>	
                                </ul>
                            </li>	
                            <li><a href="#">Level 3</a></li>
                            <li><a href="#">Level 3</a></li>	
                        </ul>
                    </li>	
                    <li><a href="#">Level 2</a></li>
                    <li><a href="#">Level 2</a></li>	
                    <li><a href="#">Level 2</a></li>	
                    <li><a href="#">Level 2</a></li>
                    <li><a href="#">Level 2</a></li>	
                </ul>
            </li>
            <li><a href="#">Level 1</a></li>	
        </ul>
      </div>
    </div>
    </body>
    </html>
    

      • 12379
      • 460 Posts
      Nice one!
        Mostly harmless.
        • 11055 ☆ A M B ☆
        • 3,112 Posts
        Very helpful.

        How about adding this:
        &parentRowTpl=`parentrowtpl`


        <li [+wf.id+] [+wf.classes+]>
        <a href="[+wf.link+]" title="[+wf.title+]" [+wf.attributes+]>
        [+wf.linktext+] <span class="raquo">&raquo;</span>
        </a>
        [+wf.wrapper+]
        </li>

        While the wrapper class should be "position: relative;",

        .raquo {
        position: absolute;
        right: 0;
        }
        So there will be a ">>" symbol at the level 2 parent.
        Haven’t test this, but I used different way (used span rather than li)
          Rico
          Genius is one percent inspiration and ninety-nine percent perspiration. Thomas A. Edison
          MODx is great, but knowing how to use it well makes it perfect!

          www.virtudraft.com

          Security, security, security! | Indonesian MODx Forum | MODx Revo's cheatsheets | MODx Evo's cheatsheets

          Author of Easy 2 Gallery 1.4.x, PHPTidy, spieFeed, FileDownload R, Upload To Users CMP, Inherit Template TV, LexRating, ExerPlan, Lingua, virtuNewsletter, Grid Class Key, SmartTag, prevNext

          Maintainter/contributor of Babel

          Because it's hard to follow all topics on the forum, PING ME ON TWITTER @_goldsky if you need my help.