Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Sfat
  • Cum se creează un meniu css orizontal. Transformarea meniului în verticală

Cum se creează un meniu css orizontal. Transformarea meniului în verticală

De la autor: bun venit pe blogul nostru despre construirea site-ului. Aceasta este o serie de articole dedicate noii specificații și astăzi aș dori să vă spun cum să faceți un meniu în html5 și cum diferă acest proces de același din versiunile anterioare ale limbii.

Care sunt diferențele

În primul rând, aș dori să spun că nici specificația nu este atât de nouă - și-a început formarea în 2009. De fapt, de atunci a existat o dezvoltare constantă - noi oportunități apar în html5, browserele moderne suportă din ce în ce mai mult aceste capacități, astfel încât în ​​curând se va putea vorbi despre suport deplin pentru această tehnologie, deși nu este ceva de genul. un singur întreg, mai degrabă, este un set de caracteristici noi, fiecare dintre acestea fiind independentă.

Ei bine, care este diferența dintre crearea navigației principale (meniu), deoarece citiți un articol pe acest subiect, atunci cu siguranță ar trebui să existe unele diferențe. Ei bine, cum a fost creat meniul înainte? De obicei, au folosit o listă cu marcatori, care a fost plasată într-un container suplimentar pentru toată navigația - un div obișnuit.

Deci, odată cu apariția noilor etichete, acum puteți face mai corect - în loc de o etichetă div, înfășurați meniul în nav - un nou element semantic care a fost creat special pentru a colecta cele mai importante link-uri din el, grupați-le împreună.

În nav, puteți pune atât o listă, cât și doar un set de link-uri. Mi se pare că aceasta este o soluție și mai simplă și mai corectă, deși în multe șabloane puteți vedea în continuare implementarea meniului folosind etichetele ul, li, a.

Interesant este că containerul de navigare este conceput special pentru linkurile prioritare de pe pagină. De fapt, pe o pagină poate fi mai mulți astfel de concurenți, dar ar trebui să plasați în ei doar acele link-uri care formează cu adevărat navigația principală (de exemplu, meniul principal de sus și duplicatul acestuia în subsolul paginii).

Cum se face un meniu orizontal cu html5

Nici măcar nu aveți nevoie de nicio încadrare în listă, totul va fi afișat inițial pe o singură linie, deoarece linkurile sunt elemente inline.

Un alt lucru este că sunt foarte limitate în design datorită proprietăților lor inline. Puteți opera numai cu proprietăți precum: culoare, dimensiunea fontului, marginile. Dacă doriți să setați o anumită culoare de fundal, să faceți separatoare și să adăugați indentări interne (sau să determinați dimensiunea fiecărui element de meniu), atunci nu veți putea face acest lucru cu o linie.

Aici trebuie să ne convertim articolele în elemente de bloc. Pentru a face acest lucru, trebuie să scrie o proprietate:

afisare: bloc;

Acum merg de sus în jos, adică navigarea noastră a devenit verticală. Pentru a-l face din nou orizontal, trebuie să adăugați anumite proprietăți. De exemplu, în loc de un tip de bloc, definiți un tip de bloc-inline pentru ele sau setați-le la (float: stânga). Citiți mai multe despre aceste metode.

Navigare pe verticală

De obicei, pentru a face un meniu vertical în html5, ei folosesc o listă, dar marcajul pe care ți l-am dat mai sus este în regulă pentru noi. După cum ați văzut, dacă convertiți link-uri în link-uri bloc, acestea se vor alinia automat unul după altul de sus în jos, deoarece două blocuri nu pot sta pe aceeași linie.

Acum le puteți aplica regulile de proiectare necesare. Există mult mai multe proprietăți pe blocuri decât pe elementul inline, așa că aveți mult mai multe opțiuni. De exemplu, am adăugat următoarele:

a (decor text: niciuna; culoare: #fff; umplutură: 5px; dimensiunea fontului: 22px; afișare: bloc; fundal: gradient liniar (în dreapta, rgba (96.108.136,1) 0%, rgba (63.76.107) , 1) 100%); lățime: 200 px; aliniere text: centru)

text - decor: nici unul;

culoare: #fff;

umplutură: 5px;

font - dimensiune: 22px;

afisare: bloc;

fundal: liniar - gradient (la dreapta, rgba (96, 108, 136, 1) 0%, rgba (63, 76, 107, 1) 100%);

latime: 200px;

text - aliniere: centru

În acest tutorial vom crea meniu CSS orizontal... Desigur, puteți folosi soluții gata făcute, de exemplu, angajați programatori pentru CMS Made Simple. Cu toate acestea, nu căutați căi ușoare, nu-i așa? : bătăuş:

Pasul 1 - marcaj HTML

În primul rând, trebuie să creăm elemente de listă cu o etichetă pentru fiecare articol din meniul nostru orizontal. Pentru a crea un submeniu, trebuie să adăugați o altă listă de copii în interiorul părintelui.

Pasul 2 - Crearea stilurilor CSS pentru meniul orizontal

Inițial, meniul arată vertical, pentru a remedia acest lucru vom scrie câteva stiluri, vom edita indentările, marginile, culoarea de fundal, rotunjim colțurile. Vom fixa lățimea și înălțimea. Să facem alinierea elementelor de meniu la stânga folosind float: left (astfel încât navigarea să aibă o structură orizontală).

Meniu, .menu ul, .menu li, .menu a (marja: 0; umplutură: 0; chenar: niciunul; contur: niciunul;) .meniu (înălțime: 40px; lățime: 505px; fundal: # 4c4e5a; fundal: - webkit-linear-gradient (sus, # 5c5e6a 0%, # 3c3d44 100%); fundal: -moz-linear-gradient (sus, # 5c5e6a 0%, # 3c3d44 100%); fundal: -o-linear-gradient ( sus, # 5c5e6a 0%, # 3c3d44 100%); fundal: -ms-linear-gradient (sus, # 5c5e6a 0%, # 3c3d44 100%); fundal: liniar-gradient (sus, # 5c5e6a 0%, # 3c3d44 100%); -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px;) .menu li (poziție: relativă; list-style: none; float: left; display: block ; înălțime: 40px;)

Să scriem următorul stil pentru un timp, ascunzând lista derulantă. Acest lucru va face mai ușor de editat.

Pasul 3 - Stilați meniul Link

În continuare, vom scrie stiluri care adaugă câteva proprietăți CSS de bază, cum ar fi tipul fontului, culorile, umplutura etc. Apoi adăugați o umbră pentru text și tranziții de culoare pentru a crea un efect neted în care culoarea nu se schimbă instantaneu, ci la un anumit interval. Pentru a crea un separator de legături, adăugați un chenar la stânga și la dreapta, apoi eliminați chenarul din stânga în prima legătură și chenarul din dreapta în ultimul link. Când treceți cu mouse-ul peste meniu, doar culoarea se va schimba.

Meniu li a (afișare: bloc; umplutură: 0 14px; margine: 6px 0; înălțime linie: 28px; text-decor: niciunul; chenar-stânga: 1px solid # 494942; chenar-dreapta: 1px solid # 4f5058; font- familie: Helvetica, Arial, sans-serif; greutate font: bold; dimensiune font: 13px; culoare: # f4f4f4; text-shadow: 1px 1px 1px rgba (0,0,0, .6); -webkit-transition : culoare .3s ease-in-out; -moz-transition: culoare .3s ease-in-out; -o-transition: culoare .3s ease-in-out; -ms-transition: culoare .3s ease-in- ieșire; tranziție: culoare .3s ease-in-out;) .meniu li: primul copil a (chenar-stânga: niciunul;) .meniu li: ultimul-copil a (chenar-dreapta: niciunul;) .meniu li: hover> a (culoare: # 9fde63;)

Pasul 4 - Meniu derulant

În primul rând, să eliminăm această linie de cod pe care am adăugat-o în al doilea pas.

Meniu ul (afișare: niciunul;)

Acum vom edita stilul pentru submeniu. Adăugați o poziție de 40px în partea de sus și 0px în stânga elementului de meniu și adăugați colțuri rotunjite în partea de jos. Setați transparența la zero și, la trecerea cu mouse-ul, schimbați-o la 1 pentru a crea un efect de fade in/out. Pentru efectul de diapozitiv sus/jos, trebuie să setăm înălțimea listei la 0px când meniul derulant este ascuns și la 36px când trecem cu mouse-ul peste meniul derulant.

Meniu ul (poziție: absolut; sus: 40px; stânga: 0; opacitate: 0; fundal: # 2f3035; -webkit-border-radius: 0 0 4px 4px; -moz-border-radius: 0 0 4px 4px; border- raza: 0 0 4px 4px; -webkit-transition: opacitate .3s ease .1s; -moz-transition: opacitate .3s ease .1s; -o-tranziție: opacitate .3s ease .1s; -ms-transition: opacitate. 3s ease .1s; tranziție: opacitate .3s ease .1s;) .menu li: hover> ul (opacitate: 1;) .menu ul li (înălțime: 0; overflow: ascuns; padding: 0; -webkit-transition: înălțime .3s ease .1s; -moz-transition: înălțime .3s ease .1s; -o-transition: înălțime .3s ease .1s; -ms-transition: înălțime .3s ease .1s; tranziție: înălțime .3s ușurință. 1s;) .menu li: hover> ul li (înălțime: 36px; overflow: vizibil; padding: 0;)

Setați lățimea meniului drop-down pe care se poate face clic la 100 px. Am adăugat un chenar după fiecare link pentru a le separa. Să eliminăm chenarul din ultimul link.

Meniul ul li a (lățime: 100px; umplutură: 4px 0 4px 40px; margine: 0; chenar: niciunul; chenar-jos: 1px solid # 464649;) .menu ul li: ultimul copil a (chenar: niciunul;)

Pentru a completa meniul CSS orizontal, trebuie să adăugăm o pictogramă pentru fiecare submeniu derulant. Pentru a face acest lucru, vom crea o clasă personalizată pentru fiecare dintre submeniuri și vom adăuga o imagine de fundal.

Anunț de meniu (fundal: url (docs.png) fără repetare 6px center;) .menu am (background: url (bubble.png) no-repeat 6px center;) .menu as (background: url (arrow.png) nu -repetă 6px centru;)

Concluzie

Am creat cu succes un meniu derulant orizontal cu și fără stiluri CSS3, deși a fost și posibil. Dacă aveți întrebări, spuneți-mi în comentarii.

(Descărcări: 395)

Specificație

Descriere

Etichetă

este destinat să afișeze o listă de elemente de meniu. Similar cu etichetele
    și
      în interiorul recipientului lista se formează folosind etichete
    • .

      În HTML4, eticheta

      învechit, se recomandă utilizarea etichetei în schimb
        ... În HTML5, eticheta reactivat, dar într-o altă capacitate. Acum acționează ca un container pentru etichetă și crearea unui meniu.

        Sintaxă

        HTML
      • articol din meniu
      • articol din meniu
      • HTML5 ...

        Atribute

        Setează eticheta vizibilă pentru meniu. Specifică tipul de meniu.

        Etichetă de final

        Necesar.

        Validare

        Utilizarea acestei etichete este depreciată de specificația HTML4, codul valid este obținut numai prin utilizarea unui tranzitoriu... În HTML5, aplicarea unei etichete

        corect.

        HTML 4.01 IE Cr Op Sa Fx

        Etichetă MENU

        În această problemă:

      • bucatarie ruseasca. Burlatskaya ureche
      • Mâncare ucraineană. Vareniki
      • bucataria moldoveneasca. Boia de ardei
      • Bucătărie caucaziană. Supa kharcho
      • Bucătăria baltică. Învârti
      • Rezultatul acestui exemplu este prezentat în Fig. 1.

        Orez. 1. Vedere a listei create cu eticheta

        HTML5 IE Cr Op Sa Fx

        Etichetă MENU

      • Centrarea unui meniu orizontal poate fi o sarcină dificilă, mai ales pentru cei care nu folosesc CSS. Găsirea de soluții duce la o listă foarte limitată de metode, dintre care cele mai multe se bazează pe CSS, trucuri JavaScript sau utilizarea unor reguli non-standard care nu sunt acceptate de toate browserele. În acest tutorial, vă vom prezenta metoda de centrare a unui meniu orizontal, care utilizează doar reguli standard CSS și funcționează în toate browserele.

        Un exemplu de meniu centrat

        Mai jos este un meniu orizontal centrat în această coloană, în care este activată a doua filă. Puteți încerca să redimensionați fereastra sau pagina browserului pentru a vă asigura că meniul rămâne întotdeauna centrat și receptiv.

        Pe pagina demo, puteți vedea mai multe opțiuni de design pentru un meniu centrat orizontal. Oricare dintre ele poate fi folosit în proiectele dvs.

        Marcaj HTML

        Toate meniurile prezentate în această lecție folosesc o structură simplă. Aceasta este o listă neordonată obișnuită de link-uri plasate într-un element div.

        • Primul marcaj
        • Al doilea marcaj
        • Al treilea marcaj
        • Al patrulea marcaj

        Meniu centrat Cod CSS

        Mai jos este CSS-ul complet care va centra meniul. Și explicațiile despre principiul muncii sunt date mai târziu în lecție.

        #centeredmenu (float: stânga; lățime: 100%; fundal: #fff; chenar-jos: 4px solid # 000; overflow: ascuns; poziție: relativ;) #centeredmenu ul (clear: stânga; float: stânga; list-style : niciunul; margine: 0; padding: 0; poziție: relativă; stânga: 50%; text-align: center;) #centeredmenu ul li (afișare: bloc; float: stânga; list-style: none; margine: 0; umplutură: 0; poziție: relativă; dreapta: 50%;) #centeredmenu ul li a (afișare: bloc; margine: 0 0 0 1px; umplutură: 3px 10px; fundal: #ddd; culoare: # 000; text-decor: nici unul; line-height: 1.3em;) #centeredmenu ul li a: hover (fundal: # 369; culoare: #fff;) #centeredmenu ul li a.active, #centeredmenu ul li a.active: hover (culoare: # fff; fundal: # 000; greutate font: bold;)

        Cum funcționează metoda de centrare

        Metoda se bazează pe poziționarea relativă a elementelor bloc plutitoare unele în altele. Mai întâi, să vedem cum sunt redimensionate elementele atunci când sunt deplasate.

        Element div(blocul), fără decalaj, se întinde pe toată lățimea disponibilă.

        Dar dacă mutăm elementul div la stânga, acesta se va micșora automat pentru a se potrivi cu conținutul său. Compresia este cheia implementării acestei metode pentru centrarea meniurilor. Ajută la mutarea meniului în poziția corectă.

        Meniu standard aliniat la stânga

        Să luăm un meniu standard aliniat la stânga și să-l reproiectăm pas cu pas. Pentru claritate, articolele sunt colorate în culori diferite, astfel încât este imediat clar ce este investit unde.

        Acordați atenție următoarelor puncte:

        • Element centeredmenu div(dreptunghi albastru) este decalat spre stânga, dar are 100% lățime, așa că rămâne întins pentru a umple întreaga pagină.
        • Element ul(dreptunghi roz) este în interiorul elementului meniu centrat divși se schimbă la stânga. Aceasta înseamnă că va fi micșorat la lățimea conținutului său, adică la lățimea totală a tuturor marcajelor.
        • Toate elementele li (dreptunghiuri verzi) sunt în interiorul elementului ulși deplasați-vă la stânga. Astfel, se micșorează la dimensiunea legăturilor din ele și se aliniază într-o linie orizontală.
        • În interiorul fiecărei legături (dreptunghiuri portocalii) este afișat textul marcajului: Marcaj 1, Marcaj 2 și așa mai departe.

        Schimbarea poziției listei neordonate


        Apoi compensăm elementul ul la dreapta cu 50% folosind poziția: relativă; ... Când un element este compensat cu un procent în aceste condiții, este important să ne amintim că lățimea totală a elementelor pe care le conține nu este lățimea sa. În cazul nostru, decalajul are loc pe jumătate din fereastra browserului (sau disponibilă pentru spațiul de afișare) Ca urmare, meniul nostru începe în mijlocul ferestrei și se extinde parțial în afara acesteia. Și treceți la pasul următor.

        Schimbarea poziției tuturor elementelor de meniu


        Rămâne doar să mutați toate elementele li lăsat cu 50%. Aceasta reprezintă 50% din lățimea elementului nostru ul (containerul care conține meniul). Astfel, filele sunt deplasate exact în centrul ferestrei.

        Câteva note importante

        Există câteva puncte importante de reținut atunci când utilizați această metodă de centrare:

        • Din moment ce elementul ul se extinde parțial în afara ferestrei, ceea ce duce la afișarea barelor de defilare. Prin urmare, trebuie să utilizați overflow: regulă ascunsă; pentru element centeredmenu div... Astfel, partea proeminentă a elementului div va fi tăiat.
        • Din moment ce elementul ul nu este aliniat la marcaje, nu puteți utiliza niciun stil vizual pentru acesta. Lăsați elementul ul fără culoare de fundal și fără margine, astfel încât să fie complet invizibil. Iar stilurile pentru marcaje ar trebui folosite doar pentru elemente. li.
        • Dacă trebuie să setați stiluri speciale pentru primul și ultimul marcaj, trebuie să adăugați o clasă pentru primul și ultimul element. li astfel încât să le puteți modela individual.

        Concluzie

        Soluția propusă este compatibilă cu toate browserele, nu utilizează JavaScript și acceptă text redimensionabil.

        De la autor: Bun venit tuturor. Din anumite motive, webmasterii asociază un meniu drop-down cu scripturi, dar pentru o lungă perioadă de timp o astfel de navigare se poate face absolut în siguranță folosind css pur. Mai mult, un astfel de meniu nu va fi mai rău. Astăzi vă voi arăta cum să creați un meniu drop-down în css. Voi împărtăși, ca să zic așa, o rețetă.

        Planul lecției și aspectul meniului nostru

        În general, mai întâi să decidem cum vom crea meniul în sine. În html5, modul standard este să îl creați într-un container de navigare folosind o listă cu marcatori. Hai să facem tocmai asta. Vom elimina markerii mai târziu folosind css, nu avem nevoie de ei deloc în meniu.

        De fapt, voi scrie imediat markup cu liste imbricate în html. Adică, lista noastră va fi pe două niveluri - va conține alte liste. Și anume, pentru fiecare articol 1 listă, care va forma un meniu derulant.

        Există un punct important aici, și anume că s-ar putea să nu fie nevoie să faceți meniul drop-down pentru fiecare articol, ci doar câteva. Nicio problemă, atunci pur și simplu nu creăm liste imbricate în paragrafe fără a renunța.

        De fapt, aici este, toate markupurile:

        < nav id = "nav" >

        < ul >

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

        < ul class = "second" >

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

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

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

        < / ul >

        < / li >

        < li > < a href = "#" >Punctul 2< / a >

        < ul class = "second" >

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

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

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

        < / ul >

        < / li >

        < li > < a href = "#" >Punctul 3< / a >

        < ul class = "second" >

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

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

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

        < / ul >

        < / li >

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

        < ul class = "second" >

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

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

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

        < / ul >

        < / li >

        < / ul >

        < / nav >

        Înțeleg că este uriaș. Aceasta este problema cu listele imbricate, care necesită mult cod. Dar țineți cont de faptul că facem 4 elemente principale și pentru fiecare va exista un meniu derulant.

        De fapt, am setat identificatorul de navigare pentru toată navigația și a doua clasă de stil pentru toate listele imbricate, pentru a înțelege că sunt imbricate.

        Grozav, marcajul nostru este gata, vă puteți uita la rezultat:

        Da, arată groaznic. Dar acum vom activa css și în câteva minute navigarea noastră se va transforma. Sa trecem la treaba.

        Scrierea stilurilor CSS

        Primul lucru pe care îl voi face este să resetați toate umpluturile la implicite pentru toate elementele. Ele vor interfera doar cu noi, este mai bine să setăm singuri indentările, acolo unde este nevoie.

        * (marja: 0; umplutură: 0;)

        marja: 0;

        umplutură: 0;

        #nav (înălțime: 70px;) #nav ul (stil listă: niciunul;)

        #nav (

        înălțime: 70px;

        #nav ul (

        lista - stil: nici unul;

        Acum trebuie, de fapt, să decidem care va fi meniul nostru. Orizontal sau vertical? Vă propun să faceți mai întâi orizontal și să vedeți totul pe exemplul lui. Pentru a face acest lucru, trebuie să scrieți următoarele stiluri:

        #nav> ul> li (float: stânga; lățime: 180px; poziție: relativ;)

        #nav> ul> li (

        plutește la stânga;

        latime: 180px;

        poziție: relativă;

        Rețineți că cu semnul> ne referim la elemente dintr-o listă care este imbricată direct într-un ul, iar aceea este imbricată direct într-un navigator. Acest lucru este foarte important, deoarece vă permite să nu aplicați stilul elementelor din listele imbricate. Cert este că, după ideea mea, articolele din lista principală vor fi aranjate orizontal, iar în cele imbricate - vertical.

        Dar, desigur, o poți face altfel, în concordanță cu ideea ta. Puteți face toate articolele pe o singură linie.

        Oricum, codul de mai sus, sper sa intelegi. Forțează articolele din lista principală să se îndrepte spre stânga, astfel încât să se încadreze toate pe aceeași linie, chiar dacă sunt elemente blocate. Le-am dat, de asemenea, o lățime explicită și o poziționare relativă.

        Pentru ce este poziționarea? Este necesar pentru a poziționa apoi absolut listele imbricate. Dacă ați studiat poziționarea în css, atunci probabil știți că dacă setați o poziționare relativă a blocului, atunci toate elementele din acesta pot fi poziționate absolut în interiorul acestui bloc anume, și nu întreaga fereastră a browserului.

        Între timp, iată ce avem deja:

        Din această captură de ecran, vă puteți imagina deja rezultatul aproximativ. Desigur, mai trebuie să decoram frumos paragrafele pentru ca ochii să nu cerească milă la vizualizarea navigației.

        #nav li a (afișare: bloc; fundal: # 90DA93; chenar: 1px solid # 060A13; culoare: # 060A13; padding: 8px; text-align: center; text-decoration: none;) #nav li a: hover ( fundal: # 2F718E;)

        #nav li a (

        afisare: bloc;

        fundal: # 90DA93;

        chenar: 1px solid # 060A13;

        culoare: # 060A13;

        umplutură: 8px;

        text - aliniere: centru;

        text - decor: nici unul;

        #nav li a: hover (

        fundal: # 2F718E;

        În primul rând, linkurile în sine trebuie să fie făcute în bloc. Acest lucru este necesar pentru ca umplutura să funcționeze și ca toate proprietățile să fie aplicate corect. Apoi, specific culorile fundalului, textului, parametrilor cadrului, umplutura și alinierea textului la centru. În cele din urmă, eliminați sublinierea de pe linkuri.

        Toți acești parametri nu trebuie să fie scrisi așa cum am făcut eu. Puteți alege culorile în mod arbitrar, să faceți un cadru diferit sau să nu utilizați deloc, indentările pot fi micșorate sau mărite.

        Rețineți că în acest caz nu am folosit semnul>, așa că aceste reguli se vor aplica tuturor legăturilor, inclusiv celor din paragrafele imbricate. Deci, acum avem următoarele:

        Grozav, dar înțelegi că sub-articolele nu ar trebui să fie vizibile, ar trebui să se deschidă când treci cu mouse-ul peste elementul dorit. Fără el, meniul nostru arată ca o masă. Ei bine, este timpul să ascundeți elementele imbricate.

        #nav li .second (afișare: niciunul; poziție: absolut; sus: 100%;)

        #nav li .second (

        afișaj: niciunul;

        poziție: absolută;

        sus: 100%;

        Mai întâi, ascundem listele complet imbricate. În al doilea rând, le oferim poziționarea absolută și coordonatele de sus: 100%. Aceasta înseamnă că meniul drop-down va fi afișat clar sub elementul principal căruia îi aparține, clar sub 100% din înălțimea acelui articol.

        Acum vedem doar meniul principal pe pagina web, care este ceea ce avem nevoie.

        Implementarea abandonului

        Trebuie să facem cel mai important lucru - să realizăm pierderea în sine. Nu este nimic complicat, uită-te la acest cod:

        #nav li: hover .second (afișare: bloc;)

        #nav li: hover .second (

        afisare: bloc;

        Acest cod va funcționa impecabil. Când treceți cu mouse-ul peste un element din meniul principal, lista imbricată va deveni vizibilă. Și numai lista care este încorporată în elementul peste care trece cursorul.

        Există o singură problemă minoră - lățimea elementelor imbricate nu se potrivește cu lățimea celor principale. Dar acest lucru se rezolvă foarte ușor prin adăugarea stilurilor adecvate:

        #nav li li (lățime: 180px;)

        #nav li li (

        latime: 180px;

        Totul, problema este rezolvata:

        Totul funcționează perfect. Când treceți cu mouse-ul peste elementul principal, apare meniul derulant corespunzător. Dacă mutați cursorul în lateral, acesta dispare. Dacă mutați cursorul pe elementele imbricate în sine, puteți face clic pe ele și puteți accesa secțiunea dorită a site-ului. Astfel, am realizat cu tine un meniu derulant foarte simplu și ușor, fără absolut niciun script.

        Transformarea meniului în verticală

        Ei bine, ne-am dat seama complet cu navigarea orizontală, dar pe lângă aceasta, navigarea verticală este foarte comună pe site-uri și poate fi și drop-down. De fapt, este foarte ușor să schimbi meniul de la orizontal la vertical, trebuie doar să schimbăm câteva rânduri de cod.

        Mai întâi, va trebui să eliminați float: stânga din elementele principale din lista. Această proprietate este cea care contribuie la faptul că articolele noastre sunt afișate pe o singură linie, dar de ce avem nevoie de aceasta dacă navigarea ar trebui să fie verticală?

        Acum rămâne să schimbați regulile pentru selectorul #nav li .second, adică pentru listele imbricate, și anume, acestea trebuie să fie poziționate ușor diferit. Asa:

        #nav li .second (afișare: niciunul; poziție: absolut; stânga: 100%; sus: 0;)

        #nav li .second (

        afișaj: niciunul;

        poziție: absolută;

        stânga: 100%;

        sus: 0;

        Adică, este necesar să se înregistreze două coordonate în loc de una. În primul rând, în cazul navigării orizontale, am spus că, așa cum sa intenționat, articolele din meniurile imbricate ar trebui să fie afișate sub elementele principale. În cazul unui meniu vertical, acesta nu este potrivit - elementele ar trebui să fie afișate în lateral.

        Deci, schimbați de sus: 100% la stânga: 100%. În plus, avem nevoie și de coordonatele de sus. Îl setăm la 0, astfel încât submeniul să fie la același nivel cu elementul căruia îi corespunde.

        Totul, acum totul funcționează așa cum trebuie. Îl poți testa. După cum puteți vedea, nu am mințit când am spus că va trebui doar să rescriu câteva rânduri de cod.

        Meniu orizontal cu mai multe niveluri

        Folosind aproximativ aceeași abordare, puteți crea mai multe niveluri de meniu dacă este necesar. De exemplu, să creăm o listă pentru al patrulea element din meniul principal, care va fi imbricat într-unul dintre sub-articole.

Top articole similare