[CSS]Menu rozwijane – poziome
Dzisiaj zaprezentuję Wam jak zrobić menu poziome rozwijane. Zbudowane tylko i wyłącznie za pomocą kodu CSS.
<div id="menu_zawartosc"> <ul id="menu"> <li><a href="#">1</a></li> <li><a href="#">2</a></li> <li class="link_strzalka_dol"><a href="#">3<!--[if IE 7]><!--></a><!--<![endif]--> <!--[if lte IE 6]> <table> <tr> <td>< ![endif]--> <ul> <li><a href="#" class="link">31</a></li> <li><a href="#">32</a></li> <li class="link_strzalka_bok"><a href="#">33<!--[if IE 7]><!--></a><!--<![endif]--> <!--[if lte IE 6]> <table> <tr> <td>< ![endif]--> <ul> <li><a href="#" class="link">34</a></li> <li class="link_strzalka_bok"><a href="#">35<!--[if IE 7]><!--></a><!--<![endif]--> <!--[if lte IE 6]> <table> <tr> <td>< ![endif]--> <ul> <li><a href="#" class="link">45</a></li> <li class="link_strzalka_bok"><a href="#">46<!--[if IE 7]><!--></a><!--<![endif]--> <!--[if lte IE 6]> <table> <tr> <td>< ![endif]--> <ul> <li><a href="#" class="link">74</a></li> <li><a href="#">747</a></li> <li class="link_strzalka_bok"><a href="#">78<!--[if IE 7]><!--></a><!--<![endif]--> <!--[if lte IE 6]> <table> <tr> <td>< ![endif]--> <ul> <li><a href="#" class="link">250</a></li> <li><a href="#">87</a></li> <li><a href="#">76</a></li> <li><a href="#">52</a></li> <li><a href="#">13</a></li> <li><a href="#">68</a></li> </ul> <!--[if lte IE 6]></td> </tr> </table> < ![endif]--> </li> <li><a href="#">768</a></li> <li><a href="#">867</a></li> </ul> <!--[if lte IE 6]></td> </tr> </table> < ![endif]--> </li> <li><a href="#">97</a></li> <li><a href="#">744444446</a></li> </ul> <!--[if lte IE 6]></td> </tr> </table> < ![endif]--> </li> <li><a href="#">255</a></li> </ul> <!--[if lte IE 6]></td> </tr> </table> < ![endif]--> </li> <li><a href="#">36</a></li> <li><a href="#">37</a></li> </ul> <!--[if lte IE 6]></td> </tr> </table> < ![endif]--> </li> <li><a href="#">4</a></li> <li><a href="#">5</a></li> <li><a href="#" class="link">6</a></li> </ul> </div> |
Jak widać zastosowałem tutaj prostą budowę menu wraz z hackami pod Internet Explorera, które zapewnią poprawne wyświetlanie menu w tych przeglądarkach.
Kod CSS wygląda następująco dla tego zestawu:
#menu_zawartosc {margin:25px 0 100px 15px; position:relative; width:735px; height:25px; z-index:100;} #menu, #menu ul {padding:0; margin:0; list-style-type: none;} #menu a, #menu a:visited {display:block;width:120px; font-size:11px; color:#fff; height:25px; line-height:24px; text-decoration:none; text-indent:5px; border:1px solid #000; border-width:1px 0 1px 1px;} #menu li ul li a, #menu li ul li a:visited {border-width:0 1px 1px 1px;} #menu li a.link, #menu li a.link:visited {border-width:1px;} #menu li {float:left; background:#b30000;} #menu li:hover {position:relative;} #menu li:hover > a {background:#dfd7ca; color:#c00;} #menu li ul {display:none;} #menu li:hover > ul {display:block; position:absolute; top:-11px; left:80px; padding:10px 30px 30px 30px; background:transparent; width:120px;} #menu > li:hover > ul {left:-30px; top:16px;} #menu table {position:absolute; border-collapse:collapse; top:0; left:0; z-index:100; font-size:1em;} * html #menu li a:hover {position:relative; background:#dfd7ca; color:#c00;} #menu li a:active, #menu li a:focus {background:#dfd7ca; color:#c00;} #menu li.link_strzalka_bok {background:#7484ad url(https://blog.piotrnalepa.pl/demo/menu/strzalka_bok.gif) no-repeat right center;} #menu li.link_strzalka_dol {background:#7484ad url(https://blog.piotrnalepa.pl/demo/menu/strzalka_dol.gif) no-repeat right center;} * html #menu li ul {visibility:hidden; display:block; position:absolute; top:-11px; left:80px; padding:10px 30px 30px 30px; background:transparent;} #menu li a:hover ul ul{visibility:hidden;} #menu li a:hover ul a:hover ul ul{visibility:hidden;} #menu li a:hover ul a:hover ul a:hover ul ul{visibility:hidden;} #menu li a:hover ul a:hover ul a:hover ul a:hover ul ul {visibility:hidden;} #menu li a:hover ul {visibility:visible; left:-30px; top:14px;} #menu li a:hover ul a:hover ul{visibility:visible; top:-11px; left:80px;} #menu li a:hover ul a:hover ul a:hover ul {visibility:visible;} #menu li a:hover ul a:hover ul a:hover ul a:hover ul {visibility:visible;} #menu li a:hover ul a:hover ul a:hover ul a:hover ul a:hover ul {visibility:visible;} |
W samym kodzie CSS zastosowałem kilka hacków pod IE, aby zachować poprawność wyświetlania menu.
Demo z tego artykułu można zobaczyć tutaj: MENU ROZWIJANE - CSS.