Cel:

Rozwijane menu (zwany także "hover menu") - menu, które prezentuje tylko podstawowy poziom zagłębienia - kolejne poziomy dostępne są po wywołaniu określonej akcji - w tym wypadku najechania kursorem na element, który posiada kolejne poziomy zagłębień.

Końcowy efekt:

Kod dla przykładu:

<div id="container">
	<div id="obj">
		<div id="sMenu">
			<ul>
				<li>
					<a href="#">Item level 1 &raquo;</a>
					<ul>
						<li><a href="#">Item level 2</a></li>
						<li><a href="#">Item level 2</a></li>
						<li>
							<a href="#">Item level 2 &raquo;</a>
							<ul>
								<li><a href="#">Item level 3</a></li>
								<li><a href="#">Item level 3</a></li>
							</ul>
						</li>
					</ul>
				</li>
				<li>
					<a href="#">Short &raquo;</a>
					<ul>
						<li><a href="#">No menu</a></li>
						<li>
							<a href="#">Short &raquo;</a>
							<ul>
								<li><a href="#">No menu</a></li>
								<li>
									<a href="#">Short &raquo;</a>
									<ul>
										<li><a href="#">No menu</a></li>
										<li>
											<a href="#">Short &raquo;</a>
											<ul>
												<li><a href="#">No menu</a></li>
												<li>
													<a href="#">Short &raquo;</a>
													<ul>
														<li><a href="#">No menu</a></li>
														<li>
															<a href="#">Short &raquo;</a>
															<ul>
																<li><a href="#">No menu</a></li>
																<li>
																	<a href="#">End :]</a>
																</li>
															</ul>
														</li>
													</ul>
												</li>
											</ul>
										</li>
									</ul>
								</li>
							</ul>
						</li>
					</ul>
				</li>
				<li><a href="#">Item level 1</a></li>
				<li><a href="#">Item level 1</a></li>
				<li>
					<a href="#">Item level 1 &raquo;</a>
					<ul>
						<li><a href="#">Item level 2</a></li>
						<li><a href="#">Item level 2 longer</a></li>
						<li>
							<a href="#">Item level 2 uba long string &raquo;</a>
							<ul>
								<li><a href="#">Item level 3</a></li>
								<li><a href="#">Item level 3 longer</a></li>
							</ul>
						</li>
						<li><a href="#">Item level 2 longer</a></li>
					</ul>
				</li>
			</ul>
		</div>
	</div>
</div>

Style CSS dla tej strony:

/**
 * Klasa do obslugi rozwijanego menu
 *
 * By dzialalo pod IE6 wymagany jest dodatkowy skrypt JS:
 *
 * <!--[if lt IE 7]>
 *     <script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE7.js" type="text/javascript"></script>
 * <![endif]-->
 */
html, body {
	font-size: 11px;
	font-family: Verdana;
}

div#obj {
	background: #3d3d3d;
	width: 740px;
	margin: 0px auto;
	height: 250px;
}

div#sMenu {
	background: black;
	height: 20px;
}

div#sMenu a {
	color: white;
	text-decoration: none;
}

div#sMenu ul,
div#sMenu li {
	margin: 0px;
	padding: 0px;
}

div#sMenu li {
	list-style: none;
	list-style-image: none;
	position: relative;
	padding: 3px 5px;
	white-space: nowrap;
}

div#sMenu ul li:hover {
	background: red;
}

/**
 * Poziome menu pierwszego poziomu
 * - nie mozna uzyc >, IE6
 */
div#sMenu > ul li {
	float: left;
}

div#sMenu ul ul li {
	float: none;
}

/**
 * Menu kolejnych poziomow
 */
div#sMenu ul ul {
	z-index: 50;
	display: none;
	position: absolute;
	top: 19px;
	border-left: 1px solid red;
}

div#sMenu li:hover > ul {
	display: block;
}

/**
 * Menu drugiego poziomu - pierwsze rozwiniecie
 */
div#sMenu ul ul {
	left: 0px;
}

div#sMenu ul ul ul {
	left: 100%;
	top: 0px;
	z-index: 75;
}

O autorze:

Zaprezentowany powyżej skrypt / styl CSS lub inna informacja pochodzi z blogu EpicWeb.pl i powstał na podstawie przemyśleń własnych autora lub pod wpływem artykułów z innych źródeł (podane zostało wtedy ono na blogu w odpowiednim poście). Jeżeli nie zaznaczono inaczej, udostępniany jest na zasadach CC-BY-SA 2.5.

Autorem jest Bartosz "BTM" Szczeciński - programista PHP, MySQL, lubiący eksperymentować ze stylami CSS, JavaScript oraz szeroko pojętą tematyką aplikacji internetowych. Możesz skontaktować się ze mną poprzez email btm@anfo.pl lub Jabbera btm@jabber.aster.pl