[CSS] Menu zakładkowe
W tym artykule pragnę Wam przedstawić sposób w jaki można przygotować efektowne menu zakładkowe za pomocą CSS. Takie menu w szczególności przydają się do stron które zawierają wiele treści i funkcjonalności, np: jedna zakładka do pogody, jedna zakładka do newsów, itp., itd.
Przykład ten działa we wszystkich przeglądarkach oprócz IE6, który mimo niechęci web-developerów do niego, wciąż znajduje się w użyciu w Internecie. Dlatego dla IE6 użyję biblioteki jQuery, aby i tam to menu działało.
Zaczniemy od kodu HTML, który wygląda następująco:
<div id="menu"> <div id="zakladka1"> <p>Muszę ja wam służyć, moje panny córki choć młodzik, ale szerzej niż się ta prędka, zmieszana rozmowa w Ojczyźnie Boga, przodków swoich nie było. bo.</p> </div> <div id="zakladka2"> <p>Grzeczność nie mogę na siano. w niebytność Wojskiego Woźny cicho wszedł służący, i z nim odszedł, wyskoczył na wierzch boru i psy za stołem. Z.</p> </div> <div id="zakladka3"> <p>Dalej w koryta rozlewa. Sędzia, a często bez ogona jest zagadką, młódź lubi zagadki. Roztargniony, do usług publicznych sposobił z powozu. konie porzucone same widzi.</p> </div> <div id="zakladka4"> <p>Raz w okolicy. i zabawiać lubił gesta). Teraz mu biło nadzwyczajnie. Więc szlachcic obyczaje chowa i w polskiej szacie siedzi Rejtan żałośny po łące ucichły.</p> </div> </div> |
W treści divów użyłem tekstu wygenerowanego za pomocą tej strony.
Kod CSS dla tego przykładu wygląda następująco:
body { font-family: Arial, Helvetica, sans-serif; } #menu { width: 580px; margin: 100px auto; } #menu div { float: left; width: 25%; height: 300px; overflow: hidden; } #menu:hover div, #menu.hover div { width: 40px; } #menu:hover div:hover, #menu.hover div.hover { width: 440px; overflow: auto; } #zakladka1 { background: #999999; } #zakladka2 { background: #990000; } #zakladka3 { background: #00CC33; } #zakladka4 { background: #FFFF00; } |
Jak widać stworzyłem dodatkową klasę "hover", na której operuje kod napisany w JavaScripcie z użyciem biblioteki jQuery:
$(document).ready(function() { $("#menu, #menu div").mouseover(function() { $(this).addClass("hover"); }).mouseout(function() { $(this).removeClass("hover"); }); }); |
Style CSS i kod JavaScript umieszczamy w sekcji ‹head›
Dla przypomnienia dodam że style w sekcji ‹head› umieszczamy za pomocą znacznika ‹style›, a skrypty umieszczamy za pomocą znacznika ‹script›.
Demo z tego artykułu można zobaczyć tutaj.