Većina klasičnih web-mjesta na webu koristi horizontalni izbornik kao glavni navigacijski element. Ponekad može sadržavati razne dodatne značajke - konstrukcije na više razina, ikone za podstavke, blok za pretraživanje, složene liste itd. Nedavno je na blogu već bio mali izbor, a danas ćemo pogledati 4 praktična primjera kako napraviti padajući izbornik u CSS + HTML. Informacije su korisne za programere početnike i one koji žele promijeniti navigaciju na svojoj stranici.
Prvi vodič CSS3 padajućeg izbornika najnoviji je u kolekciji (datirani u travnju 2016.). Prednosti rješenja: u ovom horizontalnom padajućem izborniku za stranicu nalaze se ikone u podstavkama, implementacija i sam CSS kod prilično su jednostavni za razumijevanje i implementaciju.
Korak 1 - HTML označavanje
Prvi korak je stvaranje neuređenog popisa u HTML-u sa sidrenim vezama (#) za njegove elemente. Tamo, u jednu od stavki, dodajemo još jedan ugniježđeni popis koji će biti odgovoran za podizbornik.
Moja Nadzorna ploča
Sviđa mi se
Pogledi
Dokumenti
poruke
odjavi se
Prijenosi
Videozapisi
Dokumenti
Moja Nadzorna ploča
Sviđa mi se
Pogledi
Dokumenti
poruke
odjavi se
Prijenosi
Videozapisi
Dokumenti
Korak 2 - prikaz izbornika
Uklanjanje dodatnog dopuna u CSS-u za elemente horizontalnog padajućeg izbornika web-mjesta. U istoj fazi postavit ćemo fiksnu širinu i visinu stavki izbornika, a također ćemo dodati zaobljene kutove.
Uz osnovne značajke u stilovima (font, boja, visina), koristimo i stvaramo glatki prijelaz boje teksta pri lebdenju. Također dodajemo separatore u izbornik, uklanjajući obrub s prve stavke s lijeve strane i zadnje stavke s desne strane.
.menu li a (prikaz: blok; padding: 0 14px; margina: 6px 0; visina linije: 28px; text-decoration: nema; obrub lijevo: 1px čvrst #393942; obrub desno: 1px čvrst #4f5058; font -familija: Helvetica, Arial, sans-serif; težina fonta: bold; veličina fonta: 13px; boja: #f3f3f3; sjena teksta: 1px 1px 1px rgba (0, 0, 0, .6-); -webkit prijelaz: boja .2s jednostavnog ulaska; -moz-prijelaz: boja .2s jednostavnog ulaska; -o-prijelaz: boja .2s jednostavnog ulaska; -ms-prijelaz: boja .2s jednostavnog ulaska -izlaz; prijelaz : boja .2s jednostavnog ulaska; ) .izbornik li: prvo dijete a ( obrub-lijevo : nema ; ) .izbornik li: zadnje dijete a( granica-desno : nema ; ) .izbornik li : lebdjeti > a ( boja : #8fde62 ;)
Izbornik li a ( prikaz: blok; padding: 0 14px; margina: 6px 0; visina linije: 28px; dekoracija teksta: nema; obrub lijevo: 1px čvrst #393942; rub desno: 1px čvrst #4f5058; font- obitelj: Helvetica, Arial, sans-serif; težina fonta: bold; veličina fonta: 13px; boja: #f3f3f3; sjena teksta: 1px 1px 1px rgba(0,0,0,.6); -webkit-transition : boja .2s lakoća ulaska; -moz-prijelaz: boja .2s lakoća ulaska; -o-prijelaz: boja .2s lakoća ulaska; -ms-prijelaz: boja .2s lakoća ulaska- van; prijelaz: boja .2s jednostavnog ulaska; ) .izbornik li:prvo dijete a (obrub-lijevo: nema; ) .izbornik li:posljednje-dijete a(obrub-desno: nema; ) .izbornik li: lebdjeti > a ( boja: #8fde62; )
Korak 4 - podizbornik
Budući da imamo padajući izbornik CSS stranice, trebali bismo postaviti i dizajn ugniježđenog popisa. Prvo postavite padding na 40px na vrhu i 0px na lijevoj + dodajte zaobljene kutove. Da bismo prikazali/sakrili podizbornik, inicijalno smo postavili svojstvo neprozirnosti na nulu, a pri lebdenju na jedan. Da biste stvorili efekt izgleda podizbornika, postavite visinu popisa na nulu i zadržite pokazivač miša = 36px.
Postavljamo širinu linkova = 100px, pri dnu svih elemenata osim posljednjeg dodaje se obrub dna-obrub. Također, ako želite, možete postaviti slike za stavke podizbornika (pažnja! ne zaboravite promijeniti put do slika u kodu na one koje koristite).
.menu ul li a ( širina : 100px ; padding : 4px 0 4px 40px ; margina : 0 ; granica : nema ; border-bottom : 1px solid #353539 ; ) .menu ul li: last-child a ( granica: nema ; ) .izbornik a.dokumenti (pozadina: url (../img/docs.png) bez ponavljanja 6px centar; ) .izbornik a.poruke (pozadina: url (../img/bubble.png) bez ponavljanja 6px centar ; ) .izbornik a.signout (pozadina: url (../img/arrow.png) bez ponavljanja 6px centar ;)
Izbornik ul li a ( širina: 100px; padding: 4px 0 4px 40px; margina: 0; obrub: nema; obrub-dno: 1px solid #353539; ) .menu ul li:last-child a ( granica: nema; ) . izbornik a.dokumenti (pozadina: url(../img/docs.png) središte bez ponavljanja 6px; ) .izbornik a.poruke (pozadina: url(../img/bubble.png) središte bez ponavljanja 6px; ) .izbornik a.odjava (pozadina: url(../img/arrow.png) središte bez ponavljanja 6px; )
Meni se osobno sviđa jednostavnost implementacije i korištenja ikona. Evo konačnog koda s codepen-om:
Verzija Josha Risera vizualno je slična prethodnom padajućem izborniku u HTML-u i CSS-u. U kodu nema ">" selektora djece (korisno u slojevitim dizajnima), ali autor uspješno koristi CSS3 efekte (prijelaz, box-shadow i text-shadow) za ljepši rezultat. Prema linku u izvoru, nema opisa procesa izrade horizontalnog padajućeg izbornika, pa ću odmah dati konačni kod:
U ovom primjeru ćemo pogledati kako napraviti padajući izbornik u CSS-u, u kojem će se, osim stavki, nalaziti i blok za pretraživanje. Slična implementacija se često može naći u modernim . Što se tiče vremena i složenosti implementacije, rješenje je nešto kompliciranije od prethodnih. Objavljena je u svibnju 2013., pa ćete možda trebati dotjerati neke stvari, iako je u našem testiranju sve dobro funkcioniralo.
HTML kod
Za navigaciju, kao i uvijek, koristi se neuređeni popis (s klasom nav). Uobičajene stavke izbornika su stavke popisa (li) i sadrže veze (a href) bez ikakvih klasa ili ID-ova. Iznimka su 3 specijalizirana elementa ovog horizontalnog padajućeg izbornika sa sljedećim ID-ovima:
postavke - link slike;
traži - blok s pretraživanjem i odgovarajućim gumbom;
opcije - sadrži podizbornik (realiziran kroz popis s subnav klasom).
Također u kodu ćete vidjeti skriptu bez prefiksa za korištenje CSS svojstava bez prefiksa. Rezultirajući HTML za padajući izbornik izgleda ovako:
Primjena
Odbor
Mogućnosti
Postavke
Primjena
Odbor
Mogućnosti
Primjena
Odbor
Mogućnosti
Postavke
Primjena
Odbor
Mogućnosti
CSS za izbornik
1. Osnovni stilovi i stavke izbornika
Prvo određujemo Montserrat font, tamno sivu pozadinu i fiksnu visinu za stavke izbornika. Svi elementi su float: lijevo poravnati i pozicionirani relativno tako da kasnije možete dodati podizbornik s položaj: apsolutni;
Nav li a (veličina fonta: 16px; boja: bijela; zaslon: blok; visina linije: 60px; padding: 0 26px; ukras teksta: nema; obrub lijevo: 1px čvrst #2e2e2e; obitelj fontova: Montserrat, sans-serif;text-shadow: 0 0 1px rgba(255, 255, 255, 0.5); ) .nav li a:hover ( boja pozadine: #2e2e2e; ) #settings a ( padding: 18px; visina: 24px; veličina fonta: 10px; visina linije: 24px;)
3. Blok pretraživanja
Ovaj element ima fiksnu širinu i sastoji se od nekoliko dijelova - polja za unos (#search_text) sa zelenom pozadinom i gumba za pretraživanje (#search_button). U nekim preglednicima boja pozadine može biti siva.
#search (širina: 357px; margina: 4px;) #search_text (širina: 297px; padding: 15px 0 15px 20px; font-size: 16px; font-family: Montserrat, sans-serif no ; px : ne granica : visina 0 ; margin-desno : 0 ; boja : bijela ; obris : nema ; pozadina : #1f7f5c ; float : lijevo ; veličina okvira : obrubni okvir ; prijelaz : sve 0,15 s ; ) :: -webkit-input-placeholder ( /* WebKit preglednici */ boja : bijela ; ) : -moz-placeholder ( /* Mozilla Firefox 4 do 18 */ boja : bijela ; ) :: -moz-placeholder ( /* Mozilla Firefox 19+ */ boja : bijela ; ): -ms-input-placeholder ( /* Internet Explorer 10+ */ boja: bijela ;) #search_text: fokus (pozadina: rgb (64, 151, 119) ;) #search_button (obrub: 0 nema; pozadina: #1f7f5c url (search.png) središte bez ponavljanja; širina: 60px; float: lijevo; padding: 0; text-align: centar; visina: 52px; kursor: pokazivač;)
U stilovima ćete pronaći umetanje pozadinske slike trokuta (triangle.png) za označavanje podizbornika - ne zaboravite navesti ispravan put za ovu i druge slike u primjeru. Izgled podizbornika implementiran je pomoću svojstva neprozirnosti. Konačno rješenje na codepenu:
Ova opcija uglavnom koristi CSS2.1 tehnike, rješenje je plus ili minus novo - za ožujak 2015. Ako vam nedostaje jedna podrazina u horizontalnom padajućem izborniku za stranicu, onda ovaj primjer sadrži tri odjednom. Pseudo-klasa :only-child dodaje simbol "+" stavkama za označavanje prisutnosti podizbornika.
Općenito, dobar i jednostavan primjer. Proces implementacije nećemo detaljno opisivati, jer sličan je prethodnim - prvo kreirate HTML kostur, a zatim mu postupno dodajete stilove. Preuzmite konačni kod s linka na izvor, djelomično ga možete vidjeti u Codepen:
Ukupno
Iznad smo pogledali 4 opcije kako napraviti padajući izbornik u CSS + HTML za , iako na mreži postoji mnogo više sličnih primjera. Postoje rješenja s jQueryjem, ali ovo je najvjerojatnije korisno samo za implementaciju nekih specijalnih efekata i nestandardnih zadataka. U većini slučajeva dovoljna je hrpa CSS + HTML, pogotovo jer su sada glavni zahtjevi za izbornik praktičnost i brza brzina učitavanja.
Na kraju, dva komentara na gore navedene kodove. Neki od primjera padajućeg izbornika CSS-a koriste slike, tako da ćete morati pažljivo pogledati putove slika i postaviti ispravne vrijednosti za svoju web-lokaciju. Drugo, neka rješenja su stara 2-3 godine, pa je potrebno dodatno provjeriti njihovu izvedbu u različitim preglednicima.
Ako znate još neke zanimljive moderne implementacije horizontalnih padajućih izbornika za stranicu, pošaljite linkove u komentarima.