Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Savjet
  • Kako napraviti horizontalni css meni. Pretvaranje menija u vertikalni

Kako napraviti horizontalni css meni. Pretvaranje menija u vertikalni

Od autora: dobrodošli na naš blog o izgradnji sajtova. Ovo je serija članaka posvećenih novoj specifikaciji i danas bih vam htio reći kako napraviti meni u html5 i po čemu se ovaj proces razlikuje od istog u prethodnim verzijama jezika.

Koje su razlike

Prije svega, želio bih reći da ni specifikacija nije tako nova – počela je da se formira još 2009. godine. Zapravo, od tada postoji konstantan razvoj – nove mogućnosti se pojavljuju u html5, savremeni pretraživači sve više podržavaju upravo te mogućnosti, tako da će se uskoro moći govoriti o punoj podršci za ovu tehnologiju, iako to nije nešto jedinstvena cjelina, radije, to je skup novih karakteristika, od kojih je svaka nezavisna.

Pa, dobro, koja je razlika između kreiranja glavne navigacije (menija), pošto čitate članak na ovu temu, onda bi svakako trebalo postojati neke razlike. Pa, kako je jelovnik kreiran prije? Obično su koristili listu za nabrajanje, koja je bila stavljena u dodatni kontejner za svu navigaciju - običan div.

Dakle, s pojavom novih oznaka, sada možete učiniti ispravnije - umjesto div oznake, umotajte meni u nav - novi semantički element koji je kreiran posebno da prikupi najvažnije veze u njemu, grupiše ih zajedno.

U navigaciju možete staviti i listu i samo skup linkova. Čini mi se da je ovo još jednostavnije i ispravnije rješenje, iako se u mnogim šablonima još uvijek može vidjeti implementacija menija pomoću oznaka ul, li, a.

Zanimljivo je da je navigacijski kontejner dizajniran posebno za prioritetne linkove na stranici. Zapravo, na stranici može biti više takvih kandidata, ali u njih treba postaviti samo one veze koje stvarno čine glavnu navigaciju (na primjer, gornji glavni meni i njegov duplikat u podnožju stranice).

Kako napraviti horizontalni meni sa html5

Ne trebate čak ni uokvirivanje na listi, sve će u početku biti prikazano u jednom redu, pošto su linkovi inline elementi.

Druga stvar je da su oni vrlo ograničeni u dizajnu zbog svojih inline svojstava. Možete raditi samo sa osobinama kao što su: boja, veličina fonta, margine. Ako želite da postavite određenu boju pozadine, napravite separatore i dodate unutrašnje uvlake (ili odredite veličinu svake stavke menija), onda to nećete moći da uradite sa linijom.

Ovdje moramo pretvoriti naše stavke u blok elemente. Da bi to učinili, moraju napisati svojstvo:

displej: blok;

Sada idu odozgo prema dolje, odnosno naša navigacija je postala okomita. Da biste ga ponovo učinili horizontalnim, morate dodati određena svojstva. Na primjer, umjesto tipa bloka, definirajte blok-inline tip za njih ili ih postavite na (float: lijevo). Pročitajte više o ovim metodama.

Vertikalna navigacija

Obično, da bi napravili vertikalni meni u html5, koriste listu, ali oznaka koju sam vam dao iznad je u redu za nas. Kao što ste vidjeli, ako konvertujete veze u blok veze, one će se automatski nizati jedna za drugom od vrha do dna, jer dva bloka ne mogu stajati na istoj liniji.

Sada na njih možete primijeniti potrebna pravila dizajna. Postoji mnogo više svojstava na blokovima nego na inline elementu, tako da imate puno više opcija. Na primjer, dodao sam sljedeće:

a (dekoracija teksta: nema; boja: #fff; padding: 5px; veličina fonta: 22px; prikaz: blok; pozadina: linearni gradijent (nadesno, rgba (96,108,136,1) 0%, rgba (63,76,107) , 1) 100%); širina: 200px; poravnanje teksta: centar)

tekst - dekoracija: nema;

boja: #fff;

padding: 5px;

font - veličina: 22px;

displej: blok;

pozadina: linearna - gradijent (desno, rgba (96, 108, 136, 1) 0%, rgba (63, 76, 107, 1) 100%);

širina: 200px;

tekst - poravnanje: centar

U ovom tutorijalu ćemo kreirati horizontalni CSS meni... Naravno, možete koristiti gotova rješenja, na primjer, unajmiti programere za CMS Made Simple. Ipak, ne tražite lake puteve, zar ne? : bully:

Korak 1 - HTML markiranje

Prvo, moramo kreirati stavke liste sa oznakom za svaku stavku u našem horizontalnom meniju. Da kreirate podmeni, morate dodati još jednu podređenu listu unutar nadređenog.

Korak 2 - Kreiranje CSS stilova za Horizontalni meni

U početku, meni izgleda okomito, da bismo to popravili, napisat ćemo neke stilove, urediti uvlake, ivice, boju pozadine i zaokružiti uglove. Napravićemo fiksnu širinu i visinu. Uradimo poravnanje stavki menija ulijevo pomoću float: lijevo (tako da navigacija dobije horizontalnu strukturu).

Meni, .menu ul, .menu li, .menu a (margina: 0; padding: 0; granica: nema; obris: nema;) .menu (visina: 40px; širina: 505px; pozadina: # 4c4e5a; pozadina: - webkit-linear-gradient (vrh, # 5c5e6a 0%, # 3c3d44 100%); pozadina: -moz-linear-gradient (vrh, # 5c5e6a 0%, # 3c3d44 100%); pozadina: -o-linear-gradient ( vrh, # 5c5e6a 0%, # 3c3d44 100%); pozadina: -ms-linearni gradijent (vrh, # 5c5e6a 0%, # 3c3d44 100%); pozadina: linearni gradijent (vrh, # 5c5e6a 0%, # 3c3d44 100%); -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px;) .menu li (pozicija: relativna; stil liste: nijedan; float: lijevo; prikaz: blok ; visina: 40px;)

Napišimo sljedeći stil neko vrijeme, skrivajući padajuću listu. Ovo će olakšati uređivanje.

Korak 3 - Stilizirajte meni Link

Zatim ćemo napisati stilove koji dodaju neka osnovna svojstva CSS-a kao što su tip fonta, boje, padding itd. Zatim dodajte senke za tekst i prelaze boja da biste stvorili glatki efekat gde se boja ne menja trenutno, već u određenom intervalu. Da biste kreirali separator veze, dodajte obrub lijevo i desno, a zatim uklonite lijevu ivicu u prvoj vezi i desnu ivicu u posljednjoj vezi. Kada zadržite pokazivač iznad menija, samo će se boja promijeniti.

Meni li a (prikaz: blok; padding: 0 14px; margina: 6px 0; visina linije: 28px; dekoracija teksta: nema; granica lijevo: 1px čvrsta # 494942; granica desno: 1px čvrsta # 4f5058; font- porodica: Helvetica, Arial, sans-serif; težina fonta: bold; veličina fonta: 13px; boja: # f4f4f4; sjena teksta: 1px 1px 1px rgba (0,0,0, .6); -webkit-transition : boja .3s lakoća ulaska; -moz-prijelaz: boja .3s lakoća ulaska; -o-prijelaz: boja .3s lakoća ulaska; -ms-prijelaz: boja .3s lakoća ulaska- izlaz; prijelaz: boja .3s lakoća ulaska;) .meni li: prvo dijete a (border-lijevo: nema;) .meni li: posljednje dijete a (border-desno: nema;) .meni li: hover> a (boja: # 9fde63;)

Korak 4 - Padajući meni

Prije svega, uklonimo ovu liniju koda koju smo dodali u drugom koraku.

Meni ul (prikaz: nema;)

Sada ćemo urediti stil za podmeni. Dodajte pozicioniranje od 40px na vrh i 0px lijevo od stavke menija i dodajte zaobljene uglove na dno. Postavite prozirnost na nulu, a pri lebdenju je promijenite na 1 da biste stvorili efekat bledenja. Za efekat slajda gore/dole, potrebno je da postavimo visinu liste na 0px kada je padajući meni sakriven i 36px kada pređemo preko padajućeg menija.

Meni ul (položaj: apsolutna; vrh: 40px; lijevo: 0; neprozirnost: 0; pozadina: # 2f3035; -webkit-border-radius: 0 0 4px 4px; -moz-border-radius: 0 0 4px 4px; border- radijus: 0 0 4px 4px; -webkit-transition: neprozirnost .3s lakoća .1s; -moz-transition: neprozirnost .3s lakoća .1s; -o-transition: neprozirnost .3s lakoća .1s; -ms-transition: neprozirnost. 3s ease .1s; prijelaz: neprozirnost .3s ease .1s;) .menu li: hover> ul (neprozirnost: 1;) .menu ul li (visina: 0; prelijevanje: skriveno; padding: 0; -webkit-transition: visina .3s lakoća .1s; -moz-prijelaz: visina .3s lakoća .1s; -o-prijelaz: visina .3s lakoća .1s; -ms-prijelaz: visina .3s lakoća .1s; prijelaz: visina .3s lakoća. 1s;) .menu li: hover> ul li (visina: 36px; prelivanje: vidljivo; padding: 0;)

Postavite širinu padajućeg menija na koji se može kliknuti na 100px. Dodao sam obrub nakon svake veze da ih odvojim. Uklonimo ivicu na zadnjem linku.

Menu ul li a (širina: 100px; padding: 4px 0 4px 40px; margina: 0; granica: nema; border-bottom: 1px solid # 464649;) .menu ul li: last-child a (bord: none;)

Da bismo završili horizontalni CSS meni, moramo dodati ikonu za svaki padajući podmeni. Da bismo to uradili, kreiraćemo prilagođenu klasu za svaki od podmenija i dodati pozadinsku sliku.

Oglas menija (pozadina: url (docs.png) bez ponavljanja 6px centar;) .menu am (pozadina: url (bubble.png) bez ponavljanja 6px centar;) .meni kao (pozadina: url (arrow.png) ne -ponovi 6px centar;)

Zaključak

Uspješno smo kreirali padajući horizontalni meni sa i bez CSS3 stilova, iako je i to bilo moguće. Ako imate bilo kakvih pitanja, javite mi u komentarima.

(Preuzimanja: 395)

Specifikacija

Opis

Tag

namijenjen je za prikaz liste stavki menija. Slično oznakama
    i
      unutar kontejnera lista se formira pomoću oznaka
    • .

      U HTML4, oznaka

      zastarjelo, preporučuje se korištenje oznake umjesto toga
        ... U HTML5, oznaka ponovo omogućen, ali u drugom svojstvu. Sada djeluje kao kontejner za oznaku i kreiranje menija.

        Sintaksa

        Html
      • stavku menija
      • stavku menija
      • HTML5 ...

        Atributi

        Postavlja vidljivu oznaku za meni. Određuje tip menija.

        Kraj oznaka

        Obavezno.

        Validacija

        Upotreba ove oznake je zastarjela HTML4 specifikacijom, važeći kod se dobija samo korištenjem prolaznog... U HTML5, primjena oznake

        ispravno.

        HTML 4.01 IE Cr Op Sa Fx

        MENU tag

        u ovom broju:

      • Ruska kuhinja. Burlatskaya ear
      • ukrajinska hrana. Vareniki
      • Moldavska kuhinja. Paprikaš
      • Kavkaska kuhinja. Supa kharcho
      • Baltička kuhinja. Twirl
      • Rezultat ovog primjera prikazan je na sl. jedan.

        Rice. 1. Pregled liste kreirane sa oznakom

        HTML5 IE Cr Op Sa Fx

        MENU tag

      • Centriranje horizontalnog menija može biti težak zadatak, posebno za one koji tek poznaju CSS. Pronalaženje rješenja vodi do vrlo ograničene liste metoda, od kojih se većina oslanja na CSS, JavaScript trikove ili korištenje nestandardnih pravila koja nisu podržana od strane svih pretraživača. U ovom vodiču ćemo vas provesti kroz metodu za centriranje horizontalnog menija, koji koristi samo standardna CSS pravila i radi u svim pretraživačima.

        Primjer centriranog menija

        Ispod je horizontalni meni u sredini ove kolone, u kojem je aktivirana druga kartica. Možete pokušati promijeniti veličinu prozora ili stranice preglednika kako biste bili sigurni da je meni uvijek centriran i da odgovara.

        Na demo stranici možete vidjeti nekoliko opcija dizajna za horizontalno centriran meni. Bilo koji od njih se može koristiti u vašim projektima.

        HTML markup

        Svi meniji prikazani u ovoj lekciji koriste jednostavnu strukturu. Ovo je obična neuređena lista veza postavljenih u element div.

        • Prva oznaka
        • Drugi bookmark
        • Treća oznaka
        • Četvrta oznaka

        Centrirani meni CSS kod

        Ispod je kompletan CSS koji će centrirati meni. A objašnjenja principa rada data su kasnije u lekciji.

        #centeredmenu (float: lijevo; širina: 100%; pozadina: #fff; border-bottom: 4px solid # 000; overflow: skriven; položaj: relativan;) #centeredmenu ul (clear: lijevo; float: lijevo; stil liste : nema; margina: 0; padding: 0; pozicija: relativna; lijevo: 50%; poravnanje teksta: centar;) #centeredmenu ul li (prikaz: blok; float: lijevo; stil liste: nijedan; margina: 0; padding: 0; pozicija: relativna; desno: 50%;) #centeredmenu ul li a (prikaz: blok; margina: 0 0 0 1px; padding: 3px 10px; pozadina: #ddd; boja: # 000; dekoracija teksta: none; line-height: 1.3em;) #centeredmenu ul li a: lebde (pozadina: # 369; boja: #fff;) #centeredmenu ul li a.active, #centeredmenu ul li a.active: lebde (boja: # fff; pozadina: # 000; težina fonta: bold;)

        Kako funkcioniše metoda centriranja

        Metoda se zasniva na relativnom pozicioniranju lebdećih blok elemenata jedan u drugom. Prvo, da vidimo kako se mijenja veličina elemenata kada se pomaknu.

        Element div(blok), bez pomaka, proteže se do pune širine koja mu je dostupna.

        Ali ako pomaknemo div element ulijevo, on će se automatski smanjiti kako bi uklopio svoj sadržaj. Kompresija je ključna za implementaciju ove metode za centriranje menija. Pomaže da se meni pomeri na ispravan položaj.

        Standardni lijevo poravnat meni

        Uzmimo standardni lijevo poravnat meni i redizajnirajmo ga korak po korak. Radi preglednosti artikli su obojeni u različite boje, pa je odmah jasno šta je gde uloženo.

        Obratite pažnju na sljedeće tačke:

        • Element centeredmenu div(plavi pravougaonik) je pomaknut ulijevo, ali je 100% širok, tako da ostaje rastegnut da ispuni cijelu stranicu.
        • Element ul(ružičasti pravougaonik) je unutar elementa centeredmenu div i pomera se ulevo. To znači da će biti smanjen na širinu svog sadržaja, odnosno na ukupnu širinu svih obeleživača.
        • Svi li elementi (zeleni pravokutnici) su unutar elementa ul i pomaknite se ulijevo. Tako se smanjuju na veličinu karika u njima i poredaju se u jednu horizontalnu liniju.
        • Unutar svake veze (narandžasti pravougaonici) prikazuje se tekst markera: Bookmark 1, Bookmark 2, itd.

        Pomjeranje pozicije neuređene liste


        Zatim kompenziramo element ul udesno za 50% koristeći poziciju: relativno; ... Kada je element pod ovim uvjetima pomjeren za postotak, važno je zapamtiti da ukupna širina elemenata koje sadrži nije njegova širina. U našem slučaju, pomak se dešava za polovinu prozora pretraživača (ili raspoloživog prostora za prikaz), tako da naš meni počinje na sredini prozora i delimično se proteže van njega. I prijeđite na sljedeći korak.

        Pomeranje položaja svih stavki menija


        Ostaje samo premjestiti sve elemente li lijevo za 50%. Ovo je 50% širine našeg elementa ul (kontejner koji sadrži meni). Tako se jezičci pomiču tačno u sredinu prozora.

        Nekoliko važnih napomena

        Postoji nekoliko važnih točaka koje treba imati na umu kada koristite ovu metodu centriranja:

        • Od elementa ul djelomično se proteže izvan prozora, to dovodi do prikaza traka za pomicanje. Stoga morate koristiti overflow: hidden rule; za element centeredmenu div... Dakle, izbočeni dio elementa divće biti odsječen.
        • Od elementa ul nije poravnat sa obeleživačima, ne možete koristiti nikakve vizuelne stilove za njega. Ostavite element ul bez boje pozadine i ivice tako da bude potpuno nevidljiv. A stilovi za obeleživače treba da se koriste samo za elemente. li.
        • Ako trebate postaviti posebne stilove za prve i posljednje oznake, morate dodati klasu za prvi i posljednji element. li tako da ih možete stilizirati pojedinačno.

        Zaključak

        Predloženo rješenje je kompatibilno sa svim pretraživačima, ne koristi JavaScript i podržava tekst koji može promijeniti veličinu.

        Od autora: Pozdravljam sve. Iz nekog razloga, webmasteri povezuju padajući meni sa skriptama, ali se dugo vremena takva navigacija može obavljati apsolutno sigurno koristeći čisti css. Štaviše, takav meni neće biti ništa lošiji. Danas ću vam pokazati kako da napravite padajući meni u css-u. Podijeliću, da tako kažem, recept.

        Plan lekcije i izgled našeg menija

        Generalno, prvo odlučimo kako ćemo kreirati sam meni. U html5, standardni način je kreirati ga u navigacijskom kontejneru koristeći listu s nabrajanjem. Uradimo samo to. Oznake ćemo ukloniti kasnije pomoću css-a, oni nam uopće ne trebaju u meniju.

        Zapravo, odmah ću napisati markup sa ugniježđenim listama u html-u. Odnosno, naša lista će biti dvostepena - sadržavat će druge liste. Naime, za svaku stavku 1 lista, koja će formirati padajući meni.

        Ovdje postoji važna stvar, a to je da možda nećete morati napraviti padajući meni za svaku stavku, već samo nekoliko. Nema problema, onda jednostavno ne kreiramo ugniježđene liste u paragrafima bez ispadanja.

        Zapravo, evo ga, sve oznake:

        < nav id = "nav" >

        < ul >

        < li > < a href = "#" >Stav 1< / a >

        < ul class = "second" >

        < li > < a href = "#" >podparagraf< / a > < / li >

        < li > < a href = "#" >podparagraf< / a > < / li >

        < li > < a href = "#" >podparagraf< / a > < / li >

        < / ul >

        < / li >

        < li > < a href = "#" >Tačka 2< / a >

        < ul class = "second" >

        < li > < a href = "#" >podparagraf< / a > < / li >

        < li > < a href = "#" >podparagraf< / a > < / li >

        < li > < a href = "#" >podparagraf< / a > < / li >

        < / ul >

        < / li >

        < li > < a href = "#" >Tačka 3< / a >

        < ul class = "second" >

        < li > < a href = "#" >podparagraf< / a > < / li >

        < li > < a href = "#" >podparagraf< / a > < / li >

        < li > < a href = "#" >podparagraf< / a > < / li >

        < / ul >

        < / li >

        < li > < a href = "#" >Stavka 4< / a >

        < ul class = "second" >

        < li > < a href = "#" >podparagraf< / a > < / li >

        < li > < a href = "#" >podparagraf< / a > < / li >

        < li > < a href = "#" >podparagraf< / a > < / li >

        < / ul >

        < / li >

        < / ul >

        < / nav >

        Razumijem da je ogroman. Ovo je problem sa ugniježđenim listama, za koje je potrebno mnogo koda. Ali imajte na umu činjenicu da radimo 4 glavne stavke i za svaku će postojati padajući meni.

        Zapravo, postavio sam navigacijski identifikator za svu navigaciju, a drugu klasu stila za sve ugniježđene liste, kako bih shvatio da su ugniježđene.

        Odlično, naša oznaka je spremna, možete pogledati rezultat:

        Da, izgleda užasno. Ali sada ćemo uključiti css i za nekoliko minuta naša navigacija će biti transformirana. Hajdemo na posao.

        Pisanje css stilova

        Prva stvar koju ću učiniti je resetirati sav padding na default za sve elemente. Samo će nas ometati, bolje je da sami postavljamo uvlake, gdje je potrebno.

        * (margina: 0; dopuna: 0;)

        margina: 0;

        padding: 0;

        #nav (visina: 70px;) #nav ul (stil liste: nema;)

        #nav (

        visina: 70px;

        #nav ul (

        lista - stil: nema;

        Sada, zapravo, treba da odlučimo kakav će biti naš meni. Horizontalno ili vertikalno? Predlažem da prvo uradimo horizontalno i sve vidimo na njegovom primjeru. Da biste to učinili, morate napisati sljedeće stilove:

        #nav> ul> li (float: lijevo; širina: 180px; pozicija: relativna;)

        #nav> ul> li (

        float: lijevo;

        širina: 180px;

        položaj: relativan;

        Imajte na umu da znakom> upućujemo na stavke na listi koja je direktno ugniježđena u ul, a ona je direktno ugniježđena u nav. Ovo je vrlo važno, jer vam omogućava da ne primjenjujete stil na stavke u ugniježđenim listama. Činjenica je da će, prema mojoj zamisli, stavke u glavnoj listi biti raspoređene horizontalno, a u ugniježđenim - okomito.

        Ali, naravno, možete to učiniti drugačije, u skladu sa svojom idejom. Sve stavke možete napraviti u jednoj liniji.

        U svakom slučaju, gornji kod, nadam se da možete razumjeti. To prisiljava stavke na glavnoj listi da se poravnaju ulijevo, tako da sve stanu u isti red, iako su blok stavke. Također sam im dao eksplicitnu širinu i relativno pozicioniranje.

        Čemu služi pozicioniranje? To je neophodno kako bi se tada apsolutno pozicionirale ugniježđene liste. Ako ste proučavali pozicioniranje u css-u, onda vjerovatno znate da ako postavite relativno pozicioniranje bloka, onda svi elementi u njemu mogu biti pozicionirani apsolutno unutar ovog bloka, a ne u cijeli prozor pretraživača.

        U međuvremenu, evo šta već imamo:

        Sa ovog snimka ekrana već možete zamisliti približan rezultat. Naravno, još uvijek moramo lijepo ukrasiti pasuse da oči ne mole za milost pri gledanju navigacije.

        #nav li a (prikaz: blok; pozadina: # 90DA93; ivica: 1px solid # 060A13; boja: # 060A13; padding: 8px; text-align: centar; text-decoration: nema;) #nav li a: lebdeti ( pozadina: # 2F718E;)

        #nav li a (

        displej: blok;

        pozadina: # 90DA93;

        granica: 1px čvrsta # 060A13;

        boja: # 060A13;

        padding: 8px;

        tekst - poravnaj: centar;

        tekst - dekoracija: nema;

        #nav li a: lebdjeti (

        pozadina: # 2F718E;

        Prvo, same veze moraju biti blokirane. Ovo je neophodno da bi padding funkcionisao i da bi se sva svojstva pravilno primenila. Zatim određujem boje pozadine, tekst, parametre okvira, padding i poravnanje teksta prema sredini. Na kraju, uklonite podvlačenje sa veza.

        Svi ovi parametri ne moraju biti napisani kao ja. Boje možete birati proizvoljno, napraviti okvir drugačijim ili ga uopće ne koristiti, uvlake se mogu smanjiti ili povećati.

        Imajte na umu da u ovom slučaju nismo koristili znak>, tako da će se ova pravila primjenjivati ​​na sve veze, uključujući i one u ugniježđenim pasusima. Dakle, sada imamo sljedeće:

        Odlično, ali razumiješ da podstavke ne bi trebale biti vidljive, trebale bi se otvoriti kada pređete mišem preko željene stavke. Bez toga naš meni izgleda kao sto. Pa, vrijeme je da sakrijete ugniježđene stavke.

        #nav li .second (prikaz: nema; pozicija: apsolutna; vrh: 100%;)

        #nav li .second (

        prikaz: nema;

        pozicija: apsolutna;

        vrh: 100%;

        Prvo, sakrivamo potpuno ugniježđene liste. Drugo, dajemo im apsolutno pozicioniranje i gornju koordinatu: 100%. To znači da će padajući meni biti jasno prikazan ispod glavne stavke kojoj pripada, jasno ispod 100% visine te stavke.

        Sada vidimo samo glavni meni na web stranici, što nam je potrebno.

        Implementacija osipanja

        Moramo da uradimo ono najvažnije - da shvatimo sam gubitak. U tome nema ništa komplikovano, pogledajte ovaj kod:

        #nav li: hover .second (prikaz: blok;)

        #nav li: hover .second (

        displej: blok;

        Ovaj kod će raditi besprijekorno. Kada zadržite pokazivač miša iznad stavke u glavnom meniju, ugniježđena lista će postati vidljiva. I samo lista koja je ugrađena u stavku nad kojom se kursor lebdi.

        Postoji samo jedan manji problem - širina ugniježđenih stavki ne odgovara širini glavnih. Ali to se vrlo lako rješava dodavanjem odgovarajućih stilova:

        #nav li li (širina: 180px;)

        #nav li li (

        širina: 180px;

        Sve, problem je rešen:

        Sve radi savršeno. Kada zadržite pokazivač iznad glavne stavke, pojavljuje se odgovarajući padajući meni. Ako pomaknete kursor u stranu, on nestaje. Ako pomaknete kursor na same ugniježđene stavke, možete kliknuti na njih i otići na željeni dio stranice. Stoga smo sa vama napravili vrlo jednostavan i lagan padajući meni bez apsolutno nikakvih skripti.

        Pretvaranje menija u vertikalni

        Dobro, dobro, s horizontalnom navigacijom smo se potpuno snašli, ali osim nje, vertikalna navigacija je vrlo česta na stranicama, a može biti i padajuće. U stvari, vrlo je lako promijeniti meni iz horizontalnog u vertikalni, samo moramo promijeniti nekoliko linija koda.

        Prvo ćete morati ukloniti float: lijevo sa stavki glavne liste. Upravo ovo svojstvo doprinosi tome da se naše stavke prikazuju u jednom redu, ali zašto nam je to potrebno ako navigacija bude okomita?

        Sada ostaje promijeniti pravila za #nav li .second selektor, odnosno za ugniježđene liste, naime, potrebno ih je malo drugačije pozicionirati. Volim ovo:

        #nav li .second (prikaz: nema; pozicija: apsolutna; lijevo: 100%; gore: 0;)

        #nav li .second (

        prikaz: nema;

        pozicija: apsolutna;

        lijevo: 100%;

        vrh: 0;

        Odnosno, potrebno je registrirati dvije koordinate umjesto jedne. Prvo, u slučaju horizontalne navigacije, rekao sam da, kao što je zamišljeno, stavke ugniježđenih menija trebaju biti prikazane ispod glavnih stavki. U slučaju vertikalnog menija, ovo nije prikladno - stavke bi trebale biti prikazane sa strane.

        Dakle, promijenite vrh: 100% lijevo: 100%. Osim toga, potrebna nam je i gornja koordinata. Postavljamo ga na 0 tako da podmeni bude na istom nivou kao i stavka kojoj odgovara.

        Sve, sad sve radi kako treba. Možete ga testirati. Kao što vidite, nisam lagao kada sam rekao da ću morati da prepišem samo nekoliko linija koda.

        Horizontalni meni sa više nivoa

        Koristeći otprilike isti pristup, možete kreirati više nivoa menija ako je potrebno. Na primjer, napravimo listu za četvrtu stavku glavnog menija, koja će biti ugniježđena u jednoj od podstavki.

Top srodni članci