Prilično uobičajen izgled za izbornik web mjesta, kada spremnik s njim zauzima cijelu dostupnu širinu na stranici. U ovom slučaju, prva stavka je uz lijevi rub, a posljednja uz desnu, a udaljenost između svih elemenata je jednaka. Danas ćemo vam reći kako se to radi.
Nudimo vam primjer implementacije gumenog jelovnika kada CSS pomoć za vaš resurs. U ovom izborniku stavke će se nalaziti u jednom retku. Javascript se neće koristiti. Sadržaj jelovnika bit će priložen u uobičajenom popisu. Glavna značajka takvog jelovnika je njegova svestranost, koja se izražava u činjenici da i broj i duljina stavki mogu biti bilo koji.
Kako to implementirati?Svaki programer može ponuditi svoj način rješavanja zadanog problema. Sve ovisi o njegovoj mašti, razini profesionalnosti i sposobnostima. Najčešće rješenje ovog problema je korištenje tablice. Također, mnogi bi predložili korištenje javascripta. Žurim razočarati one koji bi predložili korištenje svojstva prikaza s tablicom vrijednosti ili ćelijom tablice. Ova metoda nije dovoljno kompatibilna s više preglednika.
Naše rješenjeNaša ponuda bit će izgrađena na čvrstim temeljima znanja o HTML5 i CSS3.
Bit procesa temelji se na svojstvu poravnanja teksta s vrijednošću opravdanja. Za one koji su zaboravili, podsjećam vas: ovo svojstvo usmjerava poravnanje teksta preko cijele širine spremnika.
Prilikom korištenja našeg rješenja potrebno je poštivati dva obvezna pravila. Prvi je da širina spremnika stavke izbornika treba biti manja od teksta. Odnosno, ne u jednom redu. Drugo važno pravilo je da se riječi jednako rastežu, bez obzira na to pripadaju li istoj točki ili ne.
Ispod je kôd koji služi kao primjer kreiranja gumenog izbornika:
HTML
< ul> < li>< a href= "#" >Dom< li>< a href= "#" >Blog< li>< a href= "#" >Vijesti< li>< a href= "#" >Popularan< li>< a href= "#" >Nove stvari
ul ( text- align: justify; overflow: hidden; /* eliminira nuspojave metode */ height: 20px; /* također eliminira nepotrebno */ kursor: zadano ; /* postavlja početni oblik kursora */ margina : 50px 100px 0 100px; pozadina: #eee; padding: 5px; ) li ( display: inline; /* čini stavke izbornika tekstom */ ) li a ( display: inline- block; /* eliminira prijelome riječi u izborniku */ boja: #444; ) a : lebdite (boja: #ff0000; ) ul: nakon ( /* formiranje drugog retka za izradu metode */ sadržaj: "1" ; margina- lijevo: 100 %; visina: 1px; overflow: skriveno; display: inline- block; )
Za rad u dobrom starom Internet Exploreru morate dodatno dodati sljedeći kod u CSS
ul ( z- index: izraz(runtimeStyle. zIndex = 1 , insertAdjacentHTML("beforeEnd&apos, "< li class = "last" >")); ) ul .last ( margin-lijevo: 100%; ) * html ul ( /* treba samo ie6 */ visina: 30px; )
Određujući potrebne vrijednosti svojstava i kod, dobivamo ovaj gumeni izbornik:
6.0+ | 6.0+ | 10.5+ | 5.0+ | 3.6+ | - | - |
Zdravo. Dugo nisam pisao postove na temu html/css rada. Nedavno sam tek počeo slagati novi izgled i tijekom procesa naišao sam na zanimljiv trik koji vam omogućuje da jelovnik učinite fleksibilnim (možete mu dodati nove stavke, a veličina se neće povećati, ali će uvijek biti 100% od nadređeni blok). Dakle, danas ćemo implementirati gumeni izbornik koristeći CSS.
Ako ste previše lijeni za čitanje članka, možete pogledati ovaj video. Autor također sve vrlo dobro objašnjava:
Prvi korak je uvijek html markup, gdje bismo bili bez njega? Ali u našem slučaju sve će biti jednostavno:
Sve je jasno, evo mog označnog koda:
Sve izgleda standardno, ovako:
Sada ćemo sve unijeti pravi tip, CSS počinje raditi.
Korak 2 - Osnovni stiloviZatim ću dodati stilove u omotni blok. Naime, postavit ću maksimalnu širinu na 600 piksela (čisto da lakše napravim screenshot da meni stane), a blok ću i centrirati.
omot (
pozadina: #fff;
max-width: 600px;
margina: 0 auto;
}
Sada krenimo na sam jelovnik. Uklonit ću markere s njega (oznaka ul), napraviti pozadinski linearni gradijent i, što je najvažnije, upotrijebiti svojstvo display: table-row kako bi se spremnik za izbornik ponašao kao red tablice. Ovo je važno učiniti za daljnje manipulacije.
R-izbornik(
pozadina: linearni gradijent (desno, #b0d4e3 0%,#88bacf 100%);
prikaz: tablica-redak;
list-style: nijedan;
}
Kao što vidite, gornji kod upravo je riješio sve o čemu sam pisao. Usput, zgodno je generirati gradijente pomoću alata Ultimate CSS Gradient Generator. Jednom ću opet pisati o njemu.
R-izbornik(
okomito poravnanje: dno;
prikaz: tablica-ćelija;
širina: auto;
poravnanje teksta: središte;
visina: 50px;
obrub-desno: 1px pun #222;
}
- vertical-align: bottom - ovo svojstvo je neophodno tako da ako tekst u stavci izbornika zauzima 2 retka, bude ravnomjerno prikazan. Kada napravimo izbornik, možete ukloniti ovo svojstvo, zumirati tako da se stavke komprimiraju i tekst pomakne u dva retka i vidjet ćete problem s prikazom. Vratite imovinu i sve će biti u redu.
- display: table-cell - budući da smo sami izbornik prikaza postavili da bude redak tablice, logično bi bilo postaviti njegove stavke da se prikazuju kao ćelije u tablici. Nužno je.
- width: auto — širina će se izračunati automatski, ovisno o duljini teksta u odlomku
- text-align: center - ovo je samo za centriranje teksta unutra
- visina: 50 piksela — postavite visinu na 50 piksela
- dobro, border-desno je samo rub s desne strane, razdjelnik za stavke
Za sada jelovnik izgleda neugledno, ali to je u redu, vrijeme je da ga se prisjetite.
Zadnje što treba učiniti je stilizirati veze unutar stavki. Evo imam ovaj kod:
R-izbornik li a(
tekst-ukras: nema;
širina: 1000px;
visina: 50px;
okomito poravnanje: sredina;
prikaz: tablica-ćelija;
boja: #fff;
font: normal 14px Verdana;
}
A ovako sad izgleda jelovnik:
Opet, dopustite mi da objasnim neke retke:
- svojstvo text-decoration nadjačava zadano podvlačenje za veze
- width: 1000px je možda najvažnija linija. Morate postaviti veze na otprilike ovu širinu, možda manju, ali svakako veću od najšire moguće stavke izbornika. Veze neće biti široke 1000 piksela, jer će širina biti ograničena li stavkom izbornika, čija je širina postavljena na auto, ali to će omogućiti da za bilo koji broj stavki u izborniku uvijek bude 100 posto širine.
- vertical-align: middle i display: table-cell - prvi će poravnati tekst okomito prema sredini, a drugi će također prikazati poveznice kao ćelije. Potrebna su oba svojstva.
- font - dobro, ovo je samo skup postavki za font. Pročitaj o css svojstva za fontove u ovom članku.
Na primjer, tako da se boja stavke izbornika mijenja kada se zadrži pokazivač. Ovo se može vrlo jednostavno implementirati, korištenjem pseudo-klase lebdenja:
R-izbornik li:hover(
boja pozadine: #6bba70;
}
Super, jelovnici su gotovi, ali ono najvažnije nismo provjerili - koliko je gumasto, kao što sam vam obećao. Pa, dodat ću još 2 stavke na jelovnik:
Izbornik ostaje širok 600 piksela. Preostale stavke jednostavno su se malo smanjile kako bi se smjestile 2 nove.
Dodat ću još jednu dugačku točku:
Kao što vidite, izbornik se još malo smanjio i duga stavka se prikazuje sasvim normalno. I da nije bilo svojstva vertical-align: bottom o kojem sam vam govorio, izbornik bi izgledao gore.
Skratit ću jelovnik na tri stavke.
Stavke su postale puno slobodnije, ali sam izbornik nije se promijenio u širini. Tako smo napravili 100% gumeni jelovnik!
U principu, ako blok omota postavite na maksimalnu širinu, a ne na fiksnu, tada ga čak i ne treba prilagođavati. U mom slučaju, imam svojstvo max-width: 600px i kada širina postane manja od 600 piksela, blok će se jednostavno smanjiti zajedno sa zaslonom, bez formiranja vodoravnog pomicanja.
Pa, ako želite nekako promijeniti ili ispraviti izbornik na Mobilni uredaji ili širokim zaslonima, tada će vam medijski upiti pomoći! Sretno u izradi web stranice!
Horizontalni izbornik je popis odjeljaka web stranice, pa je logičnije označiti ga unutar elementa
- , a zatim primijenite CSS stilove na njegove elemente. Ovaj izgled izbornika je najčešći zbog očitih prednosti u njegovom pozicioniranju na web stranici. Kako napraviti horizontalni izbornik: izgled i primjeri dizajna
HTML oznake i osnovni stilovi za horizontalni izbornik
- Stavka izbornika
- Stavka izbornika
- Stavka izbornika ...
- Dom
- O nama
- Naše usluge
- Naša usluga br.1
- Naš servis br.2
- Naš servis br.3
- Naš servis br.4
- Usluga 5
- Vijesti
- Kontakti
- izbornik će se iscrtavati dinamički;
- uvlake od separatora do odlomka posvuda su iste;
- ljepši i fleksibilniji dizajn.
- s vip jastučićem kada pokazujete u stranu
- s skočnim padajućim izbornikom treće razine
- Dom
- O nama
- Naše usluge
- Naša usluga br.1
- Dodatak usluzi 1
- Dodatak usluzi 2
- Naš servis br.2
- Dodatak usluzi 3
- Dodatak usluzi 4
- Naš servis br.3
- Naš servis br.4
- Usluga 5
- Naša usluga br.1
- Vijesti
- Kontakti
- Karta puta
- Dodatak karte
- Dodatak za kartu 2
- Obrazac za povratne informacije
- Karta puta
Prema zadanim postavkama, svi elementi popisa raspoređeni su okomito, zauzimajući cijelu širinu elementa spremnika, koji zauzvrat zauzima cijelu širinu svog bloka spremnika.
HTML oznake za vodoravnu navigaciju
Horizontalni izbornik koji se nalazi unutar oznake dodatno se može postaviti unutar ... i/ili ... elementa. Zahvaljujući ovom html označavanju daje semantičko značenje, a također se pojavljuje dodatna prilika za formatiranje bloka izbornika.
Postoji nekoliko načina da ih postavite horizontalno. Najprije trebate resetirati zadane stilove preglednika za elemente navigacije:
Ul ( list-style: none; /*ukloni oznake popisa*/ margina: 0; /*ukloni gornju i donju marginu jednaku 1em*/ padding-left: 0; /*ukloni lijevu marginu jednaku 40px*/ ) a ( text-decoration: none; /*ukloni podcrtavanje teksta veze*/)
Metoda 1. li (display: inline;)Izrada elemenata liste malim slovima. Kao rezultat toga, oni se nalaze vodoravno, sa desna strana između njih se dodaje razmak od 0,4 em (izračunato u odnosu na veličinu fonta). Da biste ga uklonili, dodajte negativnu desnu marginu za li li (margin-right: -4px;) . Zatim stiliziramo veze kako želimo.
Metoda 2. li (float: lijevo;)Otvaranje plutajućih elemenata popisa. Kao rezultat toga, oni su postavljeni vodoravno. Visina kontejnerskog bloka ul postaje nula. Kako bismo riješili ovaj problem, dodajemo (overflow: hidden;) u ul, proširujući ga i tako dopuštajući da sadrži plutajuće elemente. Za veze dodajte (display: block;) i stilizirajte ih po želji.
Metoda 3. li (prikaz: inline-block;)Izrada elemenata popisa inline-block. Nalaze se vodoravno, s desne strane formira se praznina, kao u prvom slučaju. Za veze dodajte (display: block;) i stilizirajte ih po želji.
Metoda 4. ul (zaslon: flex;)Izrada ul popisa fleksibilnim spremnikom pomoću . Kao rezultat toga, elementi popisa raspoređeni su vodoravno. Dodajemo (display: block;) za poveznice i stiliziramo ih po želji.
1. Prilagodljivi izbornik s efektom podcrtavanja kada lebdite iznad veze @import url("https://fonts.googleapis.com/css?family=Ubuntu+Condensed"); .menu-main (list-style: none; margin: 40px 0 5px; padding: 25px 0 5px; text-align: center; background: white; ) .menu-main li (display: inline-block;).menu- main li:after ( sadržaj: "|"; boja: #606060; prikaz: inline-block; vertical-align:top; ) .menu-main li:last-child:after (content: none;) .menu-main a ( text-decoration: none; font-family: "Ubuntu Condensed", sans-serif; letter-spacing: 2px; position: relative; padding-bottom: 20px; margin: 0 34px 0 30px; font-size: 17px; text-transform: velika slova; prikaz: inline-block; prijelaz: boja .2s; ) .menu-main a, .menu-main a:visited (boja: #9d999d;) .menu-main a.current, .menu- main a:hover(color: #feb386;) .menu-main a:before, .menu-main a:after ( content: ""; pozicija: apsolutna; visina: 4px; vrh: automatski; desno: 50%; dno : -5px; lijevo: 50%; pozadina: #feb386; prijelaz: .8s; ) .menu-main a:hover:before, .menu-main .current:before (lijevo: 0;) .menu-main a: hover:after, .menu-main .current:after (desno: 0;) @media (max-width: 550px) ( .menu-main (padding-top: 0;).menu-main li (prikaz: blok; ) .menu-main li:after (sadržaj: ništa;) .menu-main a ( padding: 25px 0 20px; margina: 0 30px; ) ) 2. Prilagodljivi izbornik za web stranicu za vjenčanja @import url("https://fonts.googleapis.com/css?family=PT+Sans"); .top-menu (položaj: relativno; pozadina: #fff; box-shadow: inset 0 0 10px #ccc; ) .top-menu:before, .top-menu:after ( content: ""; display: block; height : 1px; border-top: 3px solid #575350; border-bottom: 1px solid #575350; margin-bottom: 2px; ) .top-menu:after ( border-bottom: 3px solid #575350; border-top: 1px solid #575350; box-shadow: 0 2px 7px #ccc; margin-top: 2px; ) .menu-main (list-style: none; padding: 0 30px; margin: 0; font-size: 18px; text-align: centar; pozicija: relativna; ) .menu-main:before, .menu-main:after ( sadržaj: "\25C8"; visina retka: 1; pozicija: apsolutna; vrh: 50%; transformacija: translateY(-50% ); ) .menu-main:before (lijevo: 15px;) .menu-main:after (desno: 15px;) .menu-main li ( display: inline-block; padding: 5px 0; ) .menu-main a ( text-decoration: none; display: inline-block; margin: 2px 5px; padding: 6px 15px; font-family: "PT Sans", sans-serif; font-size: 16px; color: #777777; border-bottom : 1 px čvrsta prozirnost; prijelaz: 0,3 s linearno; ) .menu-main .current, .menu-main a:hover ( border-radius: 3px; background: #f3ece1; color: #313131; text-shadow: 0 1px 0 #fff; border-color: #c6c6c6; ) @media (max-width: 500px) ( .menu-main li (display: block;) ) 3. Responzivni zazubljeni izbornik @import url("https://fonts.googleapis.com/css?family=PT+Sans+Caption"); .menu-main (list-style: nijedan; padding: 0 30px; margin: 0; font-size: 18px; text-align: center; position: relative; background: white; ) .menu-main:after ( content: ""; pozicija: apsolutna; širina: 100%; visina: 20px; lijevo: 0; dno: -20px; pozadina: radijalni gradijent (bijela 0%, bijela 70%, rgba(255,255,255,0) 70%, rgba( 255,255,255,0) 100%) 0 -10px; veličina pozadine: 20px 20px; ponavljanje pozadine: ponavljanje-x; ) .menu-main li (display: inline-block;) .menu-main a ( text-decoration: nijedan; prikaz: inline-block; margina: 0 15px; padding: 10px 30px; font-family: "PT Sans Caption", sans-serif; boja: #777777; prijelaz: .3s linearno; položaj: relativan; ) .menu -main a:before, .menu-main a:after ( content: ""; pozicija: apsolutna; vrh: calc(50% - 3px); širina: 6px; visina: 6px; radijus granice: 50%; pozadina: #F58262; neprozirnost: 0; prijelaz: .5s ease-in-out; ) .menu-main a:before (lijevo: 5px;) .menu-main a:after (desno: 5px;) .menu-main a. current:before, .menu-main a.current:after, .menu-main a:hover:before, .menu-main a:hover:after (neprozirnost: 1;) .menu-main a.current, .menu- main a:hover (color: #F58262;) @media(max-width:680px) ( .menu-main li (display: block;) ) 4. Prilagodljivi izbornik na vrpci @import url("https://fonts.googleapis.com/css?family=PT+Sans+Caption"); .gornji izbornik ( margina: 0 60px; pozicija: relativna; pozadina: #5A394E; sjena okvira: umetnuti 1px 0 0 rgba(255,255,255,.1), umetnuti -1px 0 0 rgba(255,255,255,.1), umetnuti 150px 0 150px -150px rgba(255,255,255,.12), umetak -150px 0 150px -150px rgba(255,255,255,.12); ) .top-menu:before, .top-menu:after ( sadržaj: ""; pozicija: apsolutna ; z-index: 2; lijevo: 0; širina: 100%; visina: 3px; ) .top-menu:before ( vrh: 0; border-bottom: 1px isprekidano rgba(255,255,255,.2); ) .top- menu:after ( bottom: 0; border-top: 1px isprekidana rgba(255,255,255,.2); ) .menu-main (list-style: none; padding: 0; margin: 0; text-align: center; ) . menu-main:before, .menu-main:after ( content: ""; pozicija: apsolutna; širina: 50px; visina: 0; vrh: 8px; border-top: 18px solid #5A394E; border-bottom: 18px solid # 5A394E; transformacija: rotacija (360 stupnjeva); z-index: -1; ) .menu-main:before ( lijevo: -30px; border-lijevo: 12px solid rgba(255, 255, 255, 0); ) .menu- main:after (desno: -30px; border-desno: 12px solid rgba(255, 255, 255, 0); ) .menu-main li ( display: inline-block; margin-right: -4px; ) .menu-main a ( text-decoration: none; display: inline-block; padding: 15px 30px; font-family: "PT Sans Caption", sans-serif; boja: bijela; prijelaz: .3s linearno; ) .menu-main a.current, .menu-main a:hover (pozadina: rgba(0,0,0,.2);) @media (max-width: 680px) ( .top-menu (margina: 0;) .menu-main li ( display: block; margin-right: 0; ) .menu-main:before, .menu-main:after (sadržaj: nema;) .menu-main a (display: block;) ) 5. Responzivni izbornik s logotipom u sredini![](https://i2.wp.com/сайт/wp-content/uploads/2017/04/lily-logo.png)
![](https://i0.wp.com/html5book.ru/wp-content/uploads/2017/04/lily-logo.png)
Seriju nastavljamo lekcijom o padajućim izbornicima. Sljedeći je vodoravni padajući izbornik "uradi sam" pomoću css-a.
Ako ste ovdje došli slučajno ili ste tražili drugu implementaciju padajućeg izbornika, savjetujem vam da odete na nadređeni odjeljak.
Ovaj odjeljak opisat će horizontalni padajući izbornik u CSS-u i HTML-u.
Navigacija po stranici:
Tako, naš zadatak:
napravite horizontalni izbornik s padajućom listom css (na ul li listama) bez koristeći jQuery i Javascript, a također i bez korištenja tablica