MenuNav Node Plugin: Menu Button Top Nav
+ ++This example demonstrates how to create a traditional, two-column page layout +(using Grids) with top navigation rendered like menu buttons. +
++ + + View example in new window. + + +
+ + +Setting Up the HTML
+
+Begin by including the CSS Grids dependencies and placing
+the markup for the two-column Grid on the page (this example uses the
+100% Centered Page Width with the
+Preset Template 1 that provides a 160px left column).
+Add the markup for the menu to the right column of the grid, and the class yui-skin-sam
+to the <body>.
+
+The root menu of menus built using the MenuNav Node Plugin can have a verical or horizontal
+orientation. The default orientation for menus is vertical, but can be easily switched to
+horizontal by applying a class of yui-menu-horizontal to the node representing the
+root menu's bounding box, as illustrated below:
+
<div id="productsandservices" class="yui-menu yui-menu-horizontal"><!-- Bounding box --> <div class="yui-menu-content"><!-- Content box --> <ul> <!-- Menu items --> </ul> </div> </div>
<div id="productsandservices" class="yui-menu yui-menu-horizontal"><!-- Bounding box --> + <div class="yui-menu-content"><!-- Content box --> + <ul> + <!-- Menu items --> + </ul> + </div> +</div>
+To render each menu label in the horizontal menu as a menu button, add the class
+yui-menubuttonnav to the node representing the root menu's bounding box, as
+illustrated below:
+
<div id="menu-1" class="yui-menu yui-menu-horizontal yui-menubuttonnav"><!-- Bounding box --> <div class="yui-menu-content"><!-- Content box --> <ul> <!-- Menu items --> </ul> </div> </div>
<div id="menu-1" class="yui-menu yui-menu-horizontal yui-menubuttonnav"><!-- Bounding box --> + <div class="yui-menu-content"><!-- Content box --> + <ul> + <!-- Menu items --> + </ul> + </div> +</div>
+Next, wrap the text node of each menu label of the root menu in an
+<em> element:
+
<div id="menu-1" class="yui-menu yui-menu-horizontal yui-menubuttonnav"><!-- Bounding box --> <div class="yui-menu-content"><!-- Content box --> <ul> <li> <a class="yui-menu-label" href="#submenu-1"><em>Submenu Label</em></a> <div id="submenu-1" class="yui-menu"> <div class="yui-menu-content"> <!-- submenu content --> </div> </div> </li> </ul> </div> </div>
<div id="menu-1" class="yui-menu yui-menu-horizontal yui-menubuttonnav"><!-- Bounding box --> + <div class="yui-menu-content"><!-- Content box --> + <ul> + + <li> + <a class="yui-menu-label" href="#submenu-1"><em>Submenu Label</em></a> + <div id="submenu-1" class="yui-menu"> + <div class="yui-menu-content"> + + <!-- submenu content --> + + </div> + </div> + </li> + + </ul> + </div> +</div>
Initializing the Menu
+
+With the menu markup in place, retrieve the Node instance representing the root
+menu (<div id="productsandservices">) and call the
+plug
+passing in a reference to the MenuNav Node Plugin.
+
// Call the "use" method, passing in "node-menunav". This will load the // script and CSS for the MenuNav Node Plugin and all of the required // dependencies. YUI({base:"../../build/", timeout: 10000}).use("node-menunav", function(Y) { // Retrieve the Node instance representing the root menu // (<div id="productsandservices">) and call the "plug" method // passing in a reference to the MenuNav Node Plugin. var menu = Y.one("#productsandservices"); menu.plug(Y.Plugin.NodeMenuNav); });
// Call the "use" method, passing in "node-menunav". This will load the +// script and CSS for the MenuNav Node Plugin and all of the required +// dependencies. + +YUI({base:"../../build/", timeout: 10000}).use("node-menunav", function(Y) { + + // Retrieve the Node instance representing the root menu + // (<div id="productsandservices">) and call the "plug" method + // passing in a reference to the MenuNav Node Plugin. + + var menu = Y.one("#productsandservices"); + + menu.plug(Y.Plugin.NodeMenuNav); + +});

