Az előző példában csak az oldal elrendezésével foglalkoztunk, így a navigációs sáv helyén is csak egy egyszerű szöveg volt. Most ennek elkészítéséről lesz szó, az előző példa kiegészítésével. Valahogy így:
A navigáció jellemzői:
- zöld hátterű elem: azt jelzi, hogy melyik oldal van éppen betöltve (mivel az oldalunk nem dinamikus, ezért ez most fixen a “Home” menüpont lesz)
- világosabb szürke hátterű elemek: azt jelzi, hogy melyik felett áll az egérkurzor (a kurzor nem látszik a képen)
- a lista utolsó eleme (About), a többitől eltérően jobbra van igazítva
A navigációs sáv szerkezete
A navigációs sáv elemeit egy felsorolásként (<ul> – unordered list, számozatlan lista) szokás megadni, módosítsuk eszerint a #nav szakaszt:
<div id="nav">
<ul>
<li><a class="active" href="#">Home</a></li>
<li><a href="#">Products</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Contact</a></li>
<li><a href="#">About</a></li>
</ul>
</div>CSS szintaktika röviden
A CSS fájlokban először kijelölünk (selector) egy HTML elemet, majd megadjuk a tulajdonságainak a kívánt értékét:
selector {
property1: value1;
property2: value2;
...
}Szelektor lehet:
- HTML tag
- azonosító (id, # áll előtte, pl: #nav )
- osztály (class, . áll előtte, pl: .active )
- pszeudó osztály (pseudo class, : áll alőtte, pl: a:hover )
Pszeudó osztályok
A CSS pszeudó (ál) osztályai nincsenek a HTML dokumentumban kimondottan megadva, hanem bizonyos állapotú elemekre lehet velük formázást megadni. A pszeudó osztályok neve előtt : áll.
Például:
- :hover – azt az elemet jelöli, amelyik felett az egérkurzor áll
- :first-child és :last-child – azonos típusú elemek közül az első ill. utolsó
- :focus – fókuszban levő elem, pl. egy űrlap azon beviteli mezője, amiben a kurzor van
A navigációs sáv formázása CCS-el
Készítsük el a #nav szakaszon belüli <ul>, <li>, és <a> tagekhez a CCS szelektorokat:
#nav ul {}
#nav li {}
#nav li:last-child {}
#nav a {}
#nav a:hover {}
#nav a.active {}
#nav li:last-child {} jelentése: #nav azonosítójú elemen belüli <li> elemek közül az utolsó (konkrétan: About menüpont)
#nav a:hover {} jelentése: #nav azonosítójú elemen belüli <a> elemek közül az, amelyik fölött a kurzor áll
#nav a.active {} jelentése: #nav azonosítójú elemen belüli <a> elemek közül azok, melyeknek .active osztállyal vannak ellátva (több is lehet, mivel osztály)
Az egyes szelektorok tartalma
A #nav elemen csak a margókat hagyjuk meg:
#nav {
margin: 10px 0;
}Az <ul> listán beállítjuk a háttérszínt, eltávolítjuk a pöttyöket a lista elemekről, margókat nullázzuk.
#nav ul {
overflow: hidden;
background: #333;
list-style: none;
margin: 0;
padding: 0;
}A lista elemek jobbra úsztatva:
#nav li {
float: left;
}A linkek alapértelmezett inline megjelenítését block szintűre állítjuk, beállítjuk a dobozok méretét belső margóval és eltávolítjuk az aláhúzást:
#nav a {
display: block;
background: #333;
text-decoration: none;
color: white;
padding: 0.7em 2em;
font-weight: bold;
}Az aktív oldal színe legyen zöld:
#nav a.active {
background: #393;
}És végül a pszeudó osztályok: a utolsó elem legyen jobbra igazított, és legyen világosabb az amelyik felett van az egérkurzor:
#nav li:last-child {
float: right;
}
#nav a:hover {
background: #555;
}Eredmény
See the Pen Simple navigation bar by zeon (@zeon) on CodePen.
