NAWIGACJA ROZWIJANA TYLKO Z POMOCĄ CSS
Pierwsze systemy nawigacji rozwijanej były realizowane w języku JavaScript. Kolejne realizowane tylko z użyciem kaskadowych arkuszy stylów nie działały w przeglądarce Internet Explorer nie nadążającej za rozwojem CSS. Opis takiego menu podaje Rachel Andrew w książce CSS.Antalogia na stronach 304-308. W celu działania takich systemów nawigacji w przeglądarce IE, tworzono specjalne biblioteki jak pliki zachowań IE autorstwa Petera Nederlofa lub pliki w języku JavaScript IE7 autorstwa Deana Edwardsa. Źródła opisów takich systemów nawigacji podaję w bocznej kolumnie.
Pani Rachel Adrew pierwsza wpadła na pomysł bardzo prostej konstrukcji arkusza stylów zapewniającego realizację rozwijalnego menu także w Internet Eksplorer bez stosowania wspomnianych bibliotek. Oryginalny szczegółowy opis rozwiązania w języku angielskim jest dostępny w artykule "Nifty Navigation Tricks Using CSS" z dnia 26.06.2008r na stronie www.sitepoint.com/articlelist/316/ Poniżej skrót opisu z oryginalnym kodem XHTML o zmienionych linkach i znacznie prostrzym arkuszem stylów dostosowanym do potrzeb BIBLIOTEKI.
OPIS KODU XHTML
Kod XHTML to lista nadrzędna trzech elementów z łączami; KOLUMNY, GRAFIKA TŁA, NAWIGACJA umieszczonych jedna pod drugą. Każda lista nadrzędna posiada zagnieżnieżdzoną w niej listę podrzędną trzech elementów z kolejnymi łączami. Arkusz CSS powinien usunąć z list punktory, wcięcia, wyświetlić elementy nadrzędne w poziomie, ukryć zagnieżdżone listy podrzędne trzech elementów i ujawnić je po najechaniu kursorem na łącze listy nadrzędnej. Kod XHTML takiego wielopoziomowego menu nawigacji jest omawiany na stronie Nawigacja pionowa jako menu5. W prezentowanym tam przykładzie nie rozwiązano problemu ukrycia zagnieżdżonej podrzędnej listy elementów z trzema łączami, co rozwiązała Pani R.Andrew w cytowanym wyżej artykule.
<ul id="nav3"> <li><a href="kolumny.htm">KOLUMNY</a> <ul> <li><a href="kolumny-2stale.htm"> 2-Stałe </a></li> <li><a href="kolumny-2plynne.htm"> 2-Płynne </a></li> <li><a href="kolumny-2elastyczne.htm"> 2-Elastyczne </a></li> </ul> </li> <li><a href="grafika.htm">GRAFIKA TŁA</a> <ul> <li><a href="grafika-tla-wybor.htm"> Wybór tła </a></li> <li><a href="grafika-tla-2kolumny.htm"> Tła 2-kolumn </a></li> <li><a href="grafika-tla-3kolumny.htm"> Tła 3-kolumn </a></li> </ul> </li> <li><a href="nawigacja.htm">NAWIGACJA</a> <ul> <li><a href="nawigacja-pozioma.htm"> Pozioma </a></li> <li><a href="nawigacja-pionowa.htm"> Pionowa </a></li> <li><a href="nawigacja-stopki.htm"> Stopki </a></li> </ul> </li> </ul>
Widoczny powyżej kod XHTML bez arkusza stylów CSS jest realizowany na ekranie w formie jak niżej.
Po dodaniu arkusza styli CSS, prezentacja na ekranie powyższego kodu XHTML wygląda jak niżej. Chcąc zmienić kolor przycisków wystarczy w drugim selektorze słowo blue zastąpić słowem red.
ARKUSZ CSS, ANALIZA REGUŁ
- ARKUSZ STYLI CSS, reguły tj. sześć selektorów z deklaracjami
- Wszystkie sześć reguł umieszczonych w arkuszu styli CSS nazywane jest stylami.
#nav, #nav ul {list-style-type:none; margin:0; padding:0}
#nav li {float:left; width:180px; background-color:blue; margin-right:2px}
#nav a:link, #nav a:visited {display block; text-decoration:none; font-size:12px; font-weight:bold; color:white; padding-left:20px}
#nav ul {display:none; padding:0}
#nav ul li {background-color:#0099cc; border-top:5px solid #0099cc; border-top:1px solid white; padding:0}
#nav li:hover ul {display: block}
- ANALIZA STYLI CSS, tj. deklaracji z ich właściwościami i wartościami
- #nav, #nav ul {wyklucza numeracje - wypunktowanie listy, zeruje marginesy i odstępy, -dotyczy wszystkich selektorów}
- #nav li {do lewej krawędzi = poziome ustawienie przycisków, szerokość 180px, tło niebieskie, margines prawy =odstęp między przyciskami poziomymi 2px, -dotyczy menu poziomego nadrzędnego}
- #nav a:link, #nav a:visited {wyświetlanie pudełka-bloku, tekst bez podkreśleń, czcionka 12px, gruba, kolor biały, odstęp tekstu lewy 20px, -dotyczy treści wszystkich przycisków poziom i pion}
- #nav ul {ukrycie pionowego menu, zerowanie odstępów, - dotyczy menu podrzędnego pionowego}
- #nav ul li {tło jasne-blue, obramowanie górne 5px jasne-blue, obramowanie górne 1px białe, zerowanie odstępów -dotyczy tylko menu podrzędnego pionowego}
- #nav li:hover ul {po wskazaniu kursorem poziomego przycisku, pojawia się pionowe menu}