--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cm/media/js/lib/yui/yui_3.10.3/docs/node-menunav/node-menunav-5.html Tue Jul 16 14:29:46 2013 +0200
@@ -0,0 +1,287 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>Example: Left Nav with Submenus with Shadows</title>
+ <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic,700italic">
+ <link rel="stylesheet" href="../../build/cssgrids/cssgrids-min.css">
+ <link rel="stylesheet" href="../assets/css/main.css">
+ <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+ <link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
+ <script src="../../build/yui/yui-min.js"></script>
+
+</head>
+<body>
+<!--
+<a href="https://github.com/yui/yui3"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
+-->
+<div id="doc">
+ <div id="hd">
+ <h1><img src="http://yuilibrary.com/img/yui-logo.png"></h1>
+ </div>
+
+
+ <h1>Example: Left Nav with Submenus with Shadows</h1>
+ <div class="yui3-g">
+ <div class="yui3-u-3-4">
+ <div id="main">
+ <div class="content"><div class="intro">
+ <p>
+ This example demonstrates how to add shadows to submenus of a menu built using the MenuNav Node
+ Plugin.
+ </p>
+</div>
+
+<div class="example newwindow">
+ <a href="node-menunav-5-example.html" target="_blank" class="button">
+ View Example in New Window
+ </a>
+</div>
+
+<h2>Creating the Shadow HTML</h2>
+<p>
+<strong>Note:</strong> be sure to add the <code>yui3-skin-sam</code> classname to the
+page's <code><body></code> element or to a parent element of the widget in order to apply
+the default CSS skin. See <a href="http://yuilibrary.com/yui/docs/tutorials/skins/">Understanding Skinning</a>.
+</p>
+<pre class="code prettyprint"><body class="yui3-skin-sam"> <!-- You need this skin class --></pre>
+
+
+<p>
+One way to add shadows to submenus is to append decorator elements to the node representing a
+submenu's bounding box. As the name implies, decorator elements add no semantic value to the
+markup, but enable additional styles to be applied. When adding any decorator elements to create
+effects like shadows or rounded corners, always add those elements via JavaScript, since it is only
+when JavaScript is enabled that a menu's markup is transformed in a drop-down menu system via the
+MenuNav Node Plugin.
+</p>
+
+<p>
+Each shadow will be represented in HTML as a single <code><div></code> element with a class
+of <code>yui3-menu-shadow</code> applied, and can easily be created by passing a string of HTML
+to Node's <a href="http://yuilibrary.com/yui/docs/api/classes/Node.html#method_create"><code>create</code></a> method. Use the
+<a href="http://yuilibrary.com/yui/docs/api/classes/Node.html#method_all"><code>all</code></a> method to
+retrieve Node instances for each submenu, and the
+<a href="http://yuilibrary.com/yui/docs/api/classes/Node.html#method_append"><code>append</code></a> method to add the
+shadow to each submenu.
+</p>
+
+<pre class="code prettyprint">// 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().use('node-menunav', function(Y) {
+
+ // Retrieve the Node instance representing the root menu
+ // (<div id="productsandservices">)
+
+ var menu = Y.one("#productsandservices");
+
+
+ // Use the "all" method to retrieve the
+ // Node instances representing each submenu.
+
+ menu.all(".yui3-menu").each(function (node) {
+
+ // Append a shadow element to the bounding box of each submenu
+
+ node.append('<div class="yui3-menu-shadow"></div>');
+
+ });
+
+
+ // Call the "plug" method of the Node instance, passing in a reference to the
+ // MenuNav Node Plugin.
+
+ menu.plug(Y.Plugin.NodeMenuNav);
+
+ // Show the menu now that it is ready
+
+ menu.get("ownerDocument").get("documentElement").removeClass("yui3-loading");
+
+});</pre>
+
+<em>Note:</em> In keeping with the
+<a href="http://developer.yahoo.com/performance/">Exceptional Performance</a>
+team's recommendation, the script block used to instantiate the menu will be
+<a href="http://developer.yahoo.com/performance/rules.html#js_bottom">placed at the bottom of the page</a>.
+This not only improves performance, it helps ensure that the DOM subtree of the
+element representing the root menu
+(<code><div id="productsandservices"></code>) is ready to be scripted.
+</p>
+
+<h2>Styling the Shadow HTML</h2>
+<p>
+With the shadow element appended to each submenu, the next step is to define the style for the
+shadow. The shadows in this example will be 12% alpha transparent black, and offset from the left,
+bottom, and right edges of each submenu's content box by 3px. To create this effect, start by
+setting the <code>position</code> property to <code>absolute</code> and the <code>z-index</code>
+property to <code>-1</code>. This will position each submenu's shadow behind its content box. For
+the 12% alpha transparent black color, set the <code>background-color</code> to <code>#000</code>
+and <code>opacity</code> property to <code>.12</code>.
+</p>
+
+<p>
+Next, set the both the <code>width</code> and <code>height</code> properties to <code>100%</code>
+so that the dimensions of the <code>shadow</code> match that of each submenu's bounding box.
+(<em>Note:</em> Setting the <code>height</code> property to <code>100%</code> won't work in IE 6
+Strict Mode unless the element's parent element has a height defined. For this reason the the
+MenuNav Node Plugin automatically sets the <code>width</code> and <code>height</code> properties of
+each submenu's bounding box to the values of its <code>offsetWidth</code> and
+<code>offsetHeight</code> properties before it is made visible.)
+</p>
+
+<p>
+To create the three-sided effect for the shadow, set the <code>padding</code> property to
+<code>1px 3px 0 3px</code>. As the CSS Box Model specifies that the value for padding is used to
+calculate the total width of of an element, the addition of the padding to the shadow makes the
+rendered width of the shadow 6px wider (100% + 6px) and 1px taller (100% + 1px) than that of each
+submenu's bounding box. Finally, setting the <code>top</code> property to <code>2px</code> and
+the <code>left</code> property to <code>-3px</code> will position the shadow so that its offset
+from the left, bottom, and right edge of each submenu's content box by 3px.
+</p>
+
+<pre class="code prettyprint">.yui3-menu-shadow {
+
+ position: absolute;
+ z-index: -1;
+ top: 2px;
+ left: -3px;
+
+ background-color: #000;
+ opacity: .12;
+ filter: alpha(opacity=12); /* For IE since it doesn't implement the CSS3
+ "opacity" property. */
+
+ padding: 1px 3px 0 3px;
+ width: 100%;
+ height: 100%;
+
+}</pre>
+
+
+<p>
+Lastly, it is necessary to modify the position and dimensions of the <code><iframe></code>
+shim, otherwise <code><select></code> elements will poke through each submenu's shadow in
+IE 6. Start by setting the <code>z-index</code> property to <code>-2</code> so that the
+<code><iframe></code> shim is behind the shadow element. Next, set the <code>padding</code>
+property to <code>3px 3px 0 3px</code>. The core CSS file for MenuNav already sets the
+<code>height</code> and <code>width</code> properties to <code>100%</code>, so the addition of the
+padding will result in the calculated width and height of the <code><iframe></code> shim
+being 100% + 6px and 100% + 3px respectively — enough to shim the shadow. Lastly, setting the
+<code>left</code> property to <code>-1</code> syncs the left edge of the
+<code><iframe></code> with that of the shadow.
+</p>
+
+<pre class="code prettyprint">#productsandservices .yui3-menu .yui3-shim {
+
+ z-index: -2; /* Place the iframe shim behind the shadow element */
+
+ /*
+ Adjust the dimensions of the <iframe> shim to match the shadow,
+ otherwise <select> elements will poke through the shadow.
+ */
+
+ left: -3px;
+ padding: 3px 3px 0 3px;
+
+}</pre>
+
+</div>
+ </div>
+ </div>
+
+ <div class="yui3-u-1-4">
+ <div class="sidebar">
+
+
+
+ <div class="sidebox">
+ <div class="hd">
+ <h2 class="no-toc">Examples</h2>
+ </div>
+
+ <div class="bd">
+ <ul class="examples">
+
+
+ <li data-description="Creating left navigation using the MenuNav Node Plugin.">
+ <a href="menunav-leftnav.html">Basic Left Nav</a>
+ </li>
+
+
+
+ <li data-description="Creating top navigation using the MenuNav Node Plugin">
+ <a href="node-menunav-2.html">Basic Top Nav</a>
+ </li>
+
+
+
+ <li data-description="Creating menu button navigation using the MenuNav Node Plugin">
+ <a href="node-menunav-3.html">Menu Button Top Nav</a>
+ </li>
+
+
+
+ <li data-description="Creating split button navigation using the MenuNav Node Plugin">
+ <a href="node-menunav-4.html">Split Button Top Nav</a>
+ </li>
+
+
+
+ <li data-description="Adding shadows to submenus of a left nav using the MenuNav Node Plugin">
+ <a href="node-menunav-5.html">Left Nav with Submenus with Shadows</a>
+ </li>
+
+
+
+ <li data-description="Adding rounded corners to submenus of a left nav using the MenuNav Node Plugin">
+ <a href="node-menunav-6.html">Left Nav With Submenus With Rounded Corners</a>
+ </li>
+
+
+
+ <li data-description="Skining a menu built using the MenuNav Node Plugin to look like the menus on Flickr">
+ <a href="node-menunav-7.html">Skinning Menus Created Using the MenuNav Node Plugin</a>
+ </li>
+
+
+ </ul>
+ </div>
+ </div>
+
+
+
+ </div>
+ </div>
+ </div>
+</div>
+
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+
+<script>
+YUI.Env.Tests = {
+ examples: [],
+ project: '../assets',
+ assets: '../assets/node-menunav',
+ name: 'node-menunav-5',
+ title: 'Left Nav with Submenus with Shadows',
+ newWindow: 'true',
+ auto: false
+};
+YUI.Env.Tests.examples.push('menunav-leftnav');
+YUI.Env.Tests.examples.push('node-menunav-2');
+YUI.Env.Tests.examples.push('node-menunav-3');
+YUI.Env.Tests.examples.push('node-menunav-4');
+YUI.Env.Tests.examples.push('node-menunav-5');
+YUI.Env.Tests.examples.push('node-menunav-6');
+YUI.Env.Tests.examples.push('node-menunav-7');
+
+</script>
+<script src="../assets/yui/test-runner.js"></script>
+
+
+
+</body>
+</html>