go
komunikace  internet  prog.  web-prog.  hardware  software  bezpečnost  magazín  disk.fórum
   

Menu v CSS

počet názorů: 5   poslední: 26.01.2005 10:00:47   číst názory   přidat názor   vytisknout

Chcete vytvořit rychlé dynamické a elegantní menu a ozvláštnit si svůj web. Tento článek vám přináší jednoduchý návod. Jedná se o velice jednoduchý a účinný postup tvorby za využití HTML a CSS. Mají být jednotlivé položky tvořeny obrázky, které se po najetí myší reloadují? I toto řešení se v článku objevuje velice elegantně a bez javascriptu.


Na svých webových stránkách chceme čím dál častěji používat aktivní prvky menu. V současné době se například pro reload obrázku stále často používá javascript a pro zobrazení menu tabulkový layout. V tomto článku si ukážeme, jak takové menu vytvořit elegantně pouze pomocí kaskádových stylů. Jak měnit obrázky použité pro tvorbu jednotlivých položek menu, jak jednoduše vytvořit aktivní prvky menu, zkrátit dobu načítání, odstranit blikání mezi reloadem jednotlivých položek.

Použití seznamu pro vytvoření jednotlivých položek.

Moderní metodou pro vytvoření jednotlivých položek menu je použití tagů, které mají původní účel vytvoření seznamu. Na následujícím příkladě si ukážeme, jak dosáhnout takového efektu.

<ul>
<li>Položka 1</li>
<li>Položka 2</li>
<li>Položka 3</li>
</ul>

Takto bude zápis kódu menu vypadat. Další část tvoří kód CSS.

UL {
LIST-STYLE-TYPE: none;
PADDING: 0px; MARGIN: 0px;
}

Tento kód odstraní v menu odrážky. Stále však ještě musíme odstranit odsazení jednotlivých položek od krajů. Toho docílíme aplikací další vlastnosti:

LI {
PADDING: 0px; MARGIN: 0px;
}

Nyní již je seznam jednotlivých položek seřazen v námi chtěném pořadí bez odrážek a odsazení. Samozřejmě chceme, aby plochu odkazu tvořilo celá plocha odkazu jednotlivé položky. Nejprve v menu vytvoříme jednotlivé odkazy:

<ul>
<li><a href="#" class="item">Položka 1</a></li>
<li><a href="#" class="item">Položka 2</a></li>
<li><a href="#" class="item">Položka 3</a></li>
</ul>

Jednotlivým odkazům jsme přiřadili vlastnosti v CSS definovaného prvku item. Pro něj použijeme následující vlastnosti:

LI A {
WIDTH: 100px;
HEIGHT: 40px;
COLOR: #000000;
BACKGROUND-COLOR: #CCCCCC;
DISPLAY: block;
}

LI A:hover {
COLOR: #FFFFFF;
BACKGROUND-COLOR: #000000;
}

Nastavíme jak široké a jak vysoké použijeme tlačítko, barvu (pozadí a textu) jakou bude mít neaktivní prvek a stejné barvy nastavíme pro prvek aktivní (hover) - kurzor myši najel na prvek. Nyní nyní již máme vytvořenou základní konstrukci menu v css. Jedná se o takzvané sloupcové menu.

Pokud bychom chtěli vytvořené položky zobrazit v jednom řádku a nikoliv ve sloupci, v parametrech použijeme následující změnu:

LI {
PADDING: 0px; MARGIN: 0px;
DISPLAY: inline;
}

LI A {
WIDTH: 100px;
HEIGHT: 40px;
COLOR: #000000;
BACKGROUND-COLOR: #CCCCCC;
DISPLAY: inline;
}

V tuto chvíli již máme dokončené základní postupy tvorby menu v CSS

Reload obrázků jako položek v menu.

Pokud chceme použít jako položku menu obrázek, který se po najetí změní na jiný obrázek, můžeme použít další cestu v CSS.

Oba obrázky, které by bylo nutné reloadovat pomocí javascriptu, sloučíme do jednoho. Uložíme je vedle sebe asi jako na následujícím obrázku:

Poté upravíme vlastnosti jednotlivých položek v menu:

LI A {
WIDTH: 100px;
HEIGHT: 40px;
DISPLAY: block;
BACKGROUND-POSITION: 0px 0px;
BACKGROUND-REPEAT: no-repeat;
}
LI A:hover {
BACKGROUND-POSITION: -199px 0px;
DISPLAY: block;
} LI A.item1 {
BACKGROUND-IMAGE: url("images/button1.gif");
}
LI A.item2 {
BACKGROUND-IMAGE: url("images/button2.gif");
}
LI A.item3 {
BACKGROUND-IMAGE: url("images/button3.gif");
}

Na tomto případě vidíme, že se obrázek po najetí posune o daný úsek doleva. Tato operace je okem nepostřehnutelná a vyhneme se tedy zdlouhavému a náročnému javascriptu i jím způsobenému problikávání způsobené načítáním nového obrázku. Hodnoty pro pozici upravte podle vašich rozměrů. Tato metoda je tedy pro reload daleko vhodnější a rychlejší. Jako položku v menu použijeme následující syntaxi:

<ul>
<li><a href="#" class="item1">&nbsp;</a></li>
<li><a href="#" class="item2">&nbsp;</a></li>
<li><a href="#" class="item3">&nbsp;</a></li>
</ul>

Pevná mezera nahradí text, který je nahrazen obrázkem jako položkou.

Dnes jsme se tedy seznámili s metodou velice rychlého a účinného formátování menu pomocí CSS. Doufám, že bude platnou náhradou nebo alespoň alternativou zdlouhavého scriptování.
Funkční příklad s použitím výše uvedených postupů




Autor: Marek Sacha, informace o autorovi
Rubrika: Programování - HTML
Čtenářů: 385     Zobrazení: 508

Jak hodnotíte tento článek?

lepší <-->horší
Názory: počet: 5   poslední: 26.01.2005 10:00:47   číst názory   přidat názor   vytisknout


Nadpis Autor Datum
:) skaj 26.01.2005 01:01:16
Příklad Čalfa 26.01.2005 08:18:47
  Re: Příklad Marek Sacha 26.01.2005 09:51:45
  Re: Příklad DavesMan 26.01.2005 09:55:27
  Re: Příklad Marek Sacha 26.01.2005 10:00:47
Nový příspěvek
Věc:
Jméno:
E-mail:

- nepoužívejte HTML k formátování textu příspěvku
- nepoužívejte A HREF= pro odkazy, aktivní budou automaticky
- odřádkování provádějte klávesou ENTER, nikoliv tagem <br>
zasílat odpovědi na můj e-mail











(c) P.E.S. consulting, s.r.o. 2000-2004. Provozovatel nezodpovídá za obsah a původ článků a diskuzních příspěvků, odpovědnost nesou jednotliví redaktoři a autoři. Informace o PC Světě naleznete zde
Novinka: Bazar
Na PC Světě nově zprovozněn bazar techniky a příslušenství
www.pcsvet.cz/bazar/
ADSL připojení
ADSL připojení
Anketa
Novinky e-mailem
Zasílání denního nebo týdenního přehledu nových článků
Nový redaktor
Chcete se stát přispivatelem pro PC Svět? info a registrace zde



ATLAS.CZ
powered by PES RedSys 3.0





© 2000-2004 pcsvět.cz / pcsvet@pcsvet.cz / ISSN 1213-6042