Zakładkowe menu w CSS

Opublikowano 29.6.2010  w HTML i CSS » Bez komentarzy
Zakładkowe menu w CSS

W tym krótki poradniku postaram się pokazać jak łatwo wykonać modne menu w kształcie zakładek bez potrzeby uruchamiania programu graficznego. Efekt działa w Firefoxie, Chrome, Safari i Konquerorze3. Pozdrowienia z tego miejsca dla twórców Opery i Internet Explorera.

Na początek HTML

Nasze menu jak nakazuje dobry webdeveloperski obyczaj będzie opierało się na odpowiednio ostylowanej liście.

<ul class="menu">
  <li><a href="#">Homepage</a></li>
  <li><a href="#">Artykuly</a></li>
  <li><a href="#" class="menu-active">Galeria</a></li>
  <li><a href="#">Download</a></li>
  <li><a href="#">O mnie</a></li>
  <li><a href="#">Kontakt</a></li>
</ul>

Jak widać jednemu z elementów nadaliśmy dodatkową klasę menu-active. Za jej pomocą oznaczamy aktualnie aktywny element, to znaczy link do strony, na której jesteśmy. Całe menu oznaczyliśmy klasą menu, za pomocą której będziemy się odwoływać w arkuszu styli.

Meritum czyli CSS

Teraz zajmijmy się pisaniem opisu CSS. Po pierwsze zerujemy wszystkie odstępy w elemencie UL i usuwamy kropki sprzed elementów listy:

.menu{
  margin: 0px;
  padding: 0px;
  list-style: none;
}

Dalej ustawiamy elementy LI w jednym rzędzie i nadajemy ujemny prawy margines by zakładki na siebie nachodziły:

.menu li{
  float: left;
  display: block;
  height: 30px;
  width: 100px;
  margin-right: -5px;
}

Pora na ustawienie linków. Ważne jest aby wyświetlały się jako bloki (display: block;) i miały ustalone rozmiary i pozycję w wymiarze Z (z-index: 1;). Aby jednak nasze menu przybrało „zakładkowy” wygląd trzeba dodać na przykład zaokrąglone rogi. Ostatnie cztery wartości ustawiają zaokrąglenie dla prawego górnego rogu kolejno w:  Chromie/Safari, Konquerorze, Firefoxie i przeglądarkach zgodnych z CSS3. Dla przejrzystości kod pozbawiony jest opisów czcionek i kolorów

.menu li a{
  display: block;
  height: 30px;
  width: 100px;
  position: relative;
  z-index: 1;
  -webkit-border-top-right-radius: 20px;
  -khtml-border-radius-topright: 20px;
  -moz-border-radius-topright: 20px;
   border-top-right-radius: 20px
}

Teraz pozostaje jeszcze tylko opisać naszą dodatkową klasę menu-active. Jak już pisałem zakładka z taką klasą musi wystawać ponad pozostałe. Inaczej mówiąc musi być na wyższej pozycji w wymiarze Z. Normalnie zakładki mają pozycję 1, więc ta aktywna musi mieć większą:

.menu a.menu-active{
  z-index: 2;
}

I to wszystko. Zero grafiki, a efekt co najmniej ciekawy. Gotowy przykład można zobaczyć pod tym linkiem.

Brak komentarzy do tego artykułu

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

*

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Markup Controls
Emoticons Smile Grin Sad Surprised Shocked Confused Cool Mad Razz Neutral Wink Lol Red Face Cry Evil Twisted Roll Exclaim Question Idea Arrow Mr Green