Vysúvacie menu v CSS a JavaScripte

Vysúvacie menu v CSS a JavaScripte

Vysúvacie menu v čistom CSS pre každý prehliadač som ešte nikde nevidel a zatiaľ asi nie je spôsob ako ho vytvoriť, ak áno skúste ma opraviť v komentároch. Moje vysúvacie menu bude využívať komponent hover.htc, ktorý hover efekt bude emulovať (pre MSIE).

Súbor si musíte stiahnuť na adrese http://users.hszk.bme.hu/~hj130/css/list_menu/hover/.

Zdrojový kód CSS pre menu:

* { margin:0; padding:0; color:#444444; font-weight:bold; }

ul#menu a { display:block; }
ul#menu { list-style-type:none; }
ul#menu li { display:block; float:left; }
ul#menu li a { padding:0.25em 1em 0.25em 1em; border:1px solid #cccccc; background:#efefef; text-decoration:none; }
ul#menu li a:hover { background:#f4f4f4; }
ul#menu li ul { display:none; }
ul#menu li ul li { display:block; float:none; border:1px solid #cccccc; }
ul#menu li ul li a { border:0; background:#efefef; }
ul#menu li ul li a:hover { color:#ffffff; background:#003366; }

/* zahrnutie a využitie komponentu hover.htc */
li { behavior:url('hover.htc'); }
ul#menu li:hover ul, ul#menu li.hover ul { display:block; position:absolute; }

Zdrojový kód XHTML pre menu:

<ul id='menu'>
  <li><a href=''>Nové menu</a>
    <ul>
      <li><a href=''>Hlavná stránka</a></li>
      <li><a href=''>Zoznam rubrík</a></li>
      <li><a href=''>Download</a></li>
      <li><a href=''>Download</a></li>
      <li><a href=''>Weblinks</a></li>
    </ul>
  </li>
  <li><a href=''>Nová navigácia</a>
    <ul>
      <li><a href=''>Hlavná stránka</a></li>
      <li><a href=''>Zoznam rubrík</a></li>
      <li><a href=''>Download</a></li>
      <li><a href=''>Weblinks</a></li>
    </ul>
  </li>
  <li><a href=''>Staré menu</a>
    <ul>
      <li><a href=''>Hlavná stránka</a></li>
      <li><a href=''>Zoznam rubrík</a></li>
      <li><a href=''>Download</a></li>
      <li><a href=''>Weblinks</a></li>
    </ul>
  </li>
  <li><a href=''>Vedlajšie menu</a>
    <ul>
      <li><a href=''>Hlavná stránka</a></li>
      <li><a href=''>Zoznam rubrík</a></li>
      <li><a href=''>Download</a></li>
      <li><a href=''>Weblinks</a></li>
    </ul>
  </li>
</ul>

Výsledok si môžete prezrieť na tejto adrese.

Alternatívne verzie: Text PDF Voice
Autor: PaBi3 · Kategória: Webdesign · Dátum: 01.02.2006 15:49

Komentáre

#1 klevo Web
01.02.2006 17:20
cool, ukladam si do del.icio.us [wink]

offtopic> to pozadie co pouzivas na vypis kodu dost pletie.

#2 LittleMan Web E-mail
01.02.2006 21:01
[amazed] todo perfecto - ja nemam slov - very thanks

#3 Frko Web E-mail
02.02.2006 08:39
Ahoj, tento článok prišiel práve vhod. Poznám toto menu no v staršej verzií. Mal som problém, v css bolo nastavenie weight pre pod menu a hlúpe IE si to potom zobralo po svojom a nezobrazovalo mi to list-style-type v celom dokumente.
v tejto verzií je to už opravené a nemusím premýšľať ja :-)

#4 Frko Web E-mail
02.02.2006 12:38
Trochu som sa hral... Ja to menu potrebujem pod sebou.
Ale IE ako vždy blbne. keď sa mi vyroluje pod menu a chcem si na niečo kliknúť tak mi to zmizne kvôli položke, ktorá by mala byť normálne prekrytá.
Neviete čo stým :-(

#5 admin Web E-mail
02.02.2006 12:57
admin Predpokladám, že si si už menu upravil, tak aby položky boli pod sebou. Skús napr. selektoru ul#menu pridať definíciu width:10em; a potom k ul#menu li ul li pridaj definíciu margin-left:10em; [wink].

#6 Frko Web E-mail
02.02.2006 13:19
to poznám no to je pekné iba mimo IE. V IE sa zobrazí list-style-type a zdeformuje sa to. Nie je to ono :-(

#7 admin Web E-mail
02.02.2006 14:31
admin Tak skús ešte pridať k ul#menu li ul li definíciu list-style-type:none;.

#8 Frko Web E-mail
03.02.2006 12:38
Tak som to vyriešil takto:

ul#menu a { display:block; }

ul#menu { list-style-type:none; margin: 0; padding-left:0em; }
ul#menu li { display:block; float:left; width:100%;}
ul#menu li a { padding:0.25em 1em 0.25em 1em; text-decoration:underline; }
ul#menu li a:hover { background:#fff; text-decoration: underline overline;}
ul#menu li ul { display:none; background:#fff; list-style-type:none; border: 1px solid #4461C7;}

ul#menu li ul li { display:block; float:none; }
ul#menu li ul li a { border:0; background:#fff; }
ul#menu li ul li a:hover { text-decoration: underline overline;}
[shy]

#9 shuster
08.02.2006 14:59
HTC nieje nahodou tiez javascript?

#10 shuster
08.02.2006 15:05
Inac ja uz nejaky tyzden vyhuzivam toto menu:
http://www.htmldog.com/articles/suckerfish/dropdowns/example/

Tiez je tam nejaky kus javascriptu, ktory sa moze ulozit ako HTC, lebo bez toho scriptu to ide len v mozille

pracovny vysledok tu:
http://www.vadium.sk/dev/atak/

#11 admin Web E-mail
08.02.2006 15:23
admin [9] Však som napísal, že je to JavaScript [wink]! Už aj v nadpise to je...

#12 Frko Web E-mail
09.02.2006 10:58
Neviete ako presne spraviť také menu ako je na www.agem.sk na ľavo?
Mne sa to nejako nedarí.

#13 svork E-mail
19.07.2006 22:23
ako mam urobit zeby tie podsekcie neboli zvisle ale vodorovne?

#14 reader E-mail
22.07.2007 12:01
Nejak mi to tie stare verzie browserov nechcu zrat.Pod linuxom (debian) vsetko slape krasne tiez pod IE7 a mozillou ale IE5 a stare aj napriek tomu ze som dodal hover.htc tak nechcu.Neviete poradit co tam moze byt zle.Ak by niekto mal casu please je tu moje icq napr 372-550-467 a please pastnem vam zdrojak a len tak sa nan skusit pozriet.Please,ucim sa to sam a nieje to lahke,pomaly tomu zacinam chapat ale odborna pomoc,rada by sa skutocne zisla.Vopred dik chlapy.

#15 bobik
21.09.2007 17:19
[14] reader,
mam podobny problem, nechce mi fungovat ten hover pod explorerom prosim radu na icq 208181916 dik.

#16 milos E-mail
25.02.2009 19:44
Caute ja sa chcem spytat ako sa da take menu prepisat tak aby sa zobrazovalo nie z hora dole ale z dola hore.Pri predstave ze to menu by bolo na spodku strankky napr.

Osobné údaje
Captcha
Odpíšte text z obrázku. Rozlišujú sa malé a veľké písmená.
Obsah
Možnosti