Vytvorenie horizontálneho css menu. Ako vytvoriť horizontálne menu pomocou html5. Čerstvé menu so zaujímavým efektom jQuery

  • 26.05.2019

1. Vertikálne svetlé menu jQuery

2. Cool efekt. Tanečné menu.

4. Rozbaľovací zoznam pomocou jQuery

Skvelý štýl prvku používateľského rozhrania ako rozbaľovacej ponuky.

Keď prejdete myšou na tlačidlo, panel sa vysunie zhora.

6. jQuery plugin "MobilyBlocks" pre zobrazenie radiálneho menu

7. Menu pomocou škriatkov

Animované javascriptové menu s efektom žiary.

Čerstvé a pekné menu jQuery.

9. Ponuka jQuery GarageDoor

10.jQuery vertikálne rolovacie menu

Implementácia jedálneho lístka s veľkým počtom položiek. Posúva sa pri pohybe kurzora myši nahor alebo nadol.

11. Štýl rozbaľovacej ponuky jQuery

12. Doplnok navigácie na stránke

Plynulé posúvanie do požadovanej sekcie na stránke. Plugin „jQuery One Page Navigation“.

13. Plugin "Ponuka animovaného obsahu"

Nový doplnok jQuery. Vynikajúca implementácia animovanej navigácie na stránke. Pri prechádzaní položkami ponuky vyskočí blok s popisom a prípadnými odkazmi a v závislosti od zvolenej položky sa zmení pozadie stránky, ktoré sa roztiahne na celú obrazovku bez ohľadu na veľkosť okna prehliadača. Nezabudnite sa pozrieť na demo stránku.

14. Doplnok jQuery Sweet Menu

Animované menu s pohyblivými položkami.

15. Opravená ponuka jQuery

Pri posúvaní stránky nadol zostáva ponuka nemenná v hornej časti obrazovky.

16. Rolovacie ponuky súpravy posuvníkov

Na implementáciu vertikálneho menu s veľkým počtom položiek. Prechádzanie položkami sa vykonáva pomocou kolieska myši alebo pomocou odkazov „Predchádzajúci“ a „Ďalej“.

17. Štýlové CSS3 Menu

18. Nové CSS3 Apple Style Menu

Nové menu v štýle Apple. Vyzerá tmavšie ako predtým, ale nie menej roztomilé.

19. Pôvodná ponuka jQuery

Rozbaľovacia ponuka s efektom na pozadí. Položky podponuky sa rozbalia nahor. Keď umiestnite kurzor myši na položku ponuky, obrázok na pozadí sa zmení.

20. Animované menu jQuery

Animované menu. Položky menu sú prezentované vo forme ikon a popisov. niektoré skvelé efekty pri umiestnení kurzora myši nad položku ponuky. Existuje 8 efektov, aby ste ich videli všetky - kliknite na odkazy Príklad1-Príklad8 na stránke s ukážkou.

21. "Ponuka rolovania" rolovacia ponuka XML

Rolovanie vo vertikálnom a horizontálnom menu. Dobré riešenie, keď je v ponuke veľa položiek.

22. Kontextové menu na stránke na jQuery

Po kliknutí pravým tlačidlom myši na konkrétnu oblasť sa zobrazí ponuka.

23. Kruhové dvojúrovňové menu pre stránku

Keď je vybratá položka ponuky, položky podponuky sa zobrazia vpravo.

24. jQuery CSS3 Menu s Blur Menu CSS3

Pôvodná ponuka jQuery CSS3 sa dodáva v 7 rôznych štýloch. Keď umiestnite kurzor myši na jednu z položiek ponuky, ostatné sú akoby rozmazané.

25. Niekoľko veľkolepých animovaných menu jQuery CSS3

10 kreatívnych animovaných menu. Horizontálne a vertikálne CSS3 menu s rôznymi efektmi a prechodmi.

Súčasťou archívu je aj pôvodný PSD súbor menu.

27. Menu MagicLine

Pozadie alebo podčiarknutie položky ponuky sleduje myš s miernym oneskorením, zatiaľ čo pozadie plynule mení svoju farbu, keď prechádzate z položky na položku. Veľmi krásny efekt, vyzerá to nezvyčajne. Pozor: efekt nefunguje v opere

28. Obrazové bubliny

Skvelý efekt, keď prejdete myšou na jeden z obrázkov. Efekt je trochu podobný vyššie opísanému jQDocku.

31. Zaujímavé menu jQuery s rôznymi efektmi

Horizontálne, vertikálne menu. Zaujímavé efekty.

32. Skvelé jQuery Apple Style Menu

34. Menu jQuery so zaujímavým efektom

36. Čerstvé menu so zaujímavým efektom jQuery

Veľmi zaujímavý efekt. Ideálne pre stránky s portfóliom.

Zaujímavý efekt vyskakovania miniatúr pri umiestnení kurzora myši.

40. Rozbaľovací zoznam s automatickým rolovaním

Pekný prechodový efekt medzi odsekmi.

42. Skvelé menu jQuery

43. Pekné veľké menu jQuery

44. Rolovanie v ponukách jQuery

Položky ponuky sú zobrazené ako miniatúry.

46. ​​Radiálna navigačná ponuka jQuery

47 Ponuky CSS a jQuery

Navigačný panel s vyhľadávacím poľom, ktorý sa pri posúvaní stránky nadol stáva polopriehľadným.

48. Horizontálne menu jQuery

49. Vertikálne menu jQuery

Vynikajúce vzpriamené menu. Keď umiestnite kurzor myši, zobrazí sa položka ponuky.

50. Horizontálne menu jQuery

Zaujímavý efekt pri umiestnení kurzora myši nad položku ponuky.

52. Rozbaľovacia ponuka jQuery

Keď umiestnite kurzor myši na ponuku, zobrazia sa jej položky. Zobrazené položky sú zobrazené ako oblúk, ktorého polomer môžete nastaviť pri konfigurácii doplnku. V niektorých prehliadačoch neuvidíte oblúkové zobrazenie, ponuka sa zobrazí priamo, ale to stále nezničí celkový dojem z tejto implementácie ponuky jQuery.

53 Navigačný panel CSS a jQuery

Zaujímavý efekt, keď umiestnite kurzor myši na položku ponuky.

54. vyskakovací panel jQuery

Čerstvé animované menu v odtieňoch sivej.

58. Stĺpcová navigácia na stránkach s jQuery

Zaujímavé riešenie pre navigáciu, ktoré je prezentované vo forme zvislých pruhov. Keď umiestnite kurzor myši na tieto pásy, zobrazí sa obrázok položky a zoznam podmenu. Keď kliknete na položku podponuky, zobrazí sa stránka s popisom. Táto implementácia je ideálna pre propagačné stránky alebo prezentácie. Nezabudnite si pozrieť ukážku pluginu.

59 Navigácia na stránke jQuery

Navigácia na stránke je prezentovaná vo forme 4 obrázkov, nad ktorými si všimnete zaujímavý animovaný efekt.

60. Navigačná lišta roluje s obsahom

Navigačná lišta. Kliknutím na šípku sa stránka posúva. Navigácia sa posúva spolu s obsahom stránky.

61. panel jQuery s rôznymi sociálnymi službami

62. Úhľadné animované menu jQuery

63. Ponuka akvarelových štetcov jQuery

Habr, ahoj!

Na Codepen sa objavuje veľa dobrých riešení od rôznych špecialistov a verím, že tie najlepšie z nich by sa mali zhromaždiť na jednom mieste. Preto som si pred 2 rokmi začal do počítača ukladať zaujímavé skriptá na rôzne témy.

Zvykol som ich uverejňovať v skupine produktov cloud IDE p. Gefest, to boli zostavy 5-8 riešení. Ale teraz som začal hromadiť 15-30 skriptov v rôznych témach (tlačidlá, ponuky, tipy atď.).

Takéto veľké sady by sa mali ukázať profesionálom. Preto ich zverejňujem na Habr. Dúfam, že vám budú užitočné.

V tejto recenzii sa pozrieme na vrstvené menu.

Plochá horizontálna navigácia

Pekný navigačný panel s hladko sa objavujúcimi podmenu. Kód je dobre štruktúrovaný, používa sa js. Súdiac podľa použitých funkcií, funguje v ie8 +.
http://codepen.io/andytran/pen/kmAEy

Hlavička navigácie materiálu so zarovnanými rozbaľovacími ponukami

Responzívny panel odkazov s dvojstĺpcovou podponukou. Všetko sa robí v css a html. Použité selektory css3, ktoré nie sú podporované v ie8.
http://codepen.io/colewaldrip/pen/KpRwgQ

Rozbaľovacia ponuka Hladký akordeón

Štýlové vertikálne menu s plynule rozbaľovacími prvkami. Používa sa prechod, transformácia js-code.
http://codepen.io/fainder/pen/AydHJ

Čisté CSS tmavé inline navigačné menu

Tmavý vertikálny navigačný panel s ikonami z ionics. Používa sa Javascript. V ie8 to bude s najväčšou pravdepodobnosťou fungovať aj bez animácie.
http://codepen.io/3lv3n_snip3r/pen/XbddOO

Čistá rozbaľovacia ponuka CSS3 Mega s animáciou

Štýlové menu s dvoma výstupnými formátmi: horizontálne a vertikálne. Používajú sa ikony a animácie css3. V ie8 to bude určite vyzerať hrozne, ale v iných prehliadačoch je všetko v pohode.
Vertikálny odkaz: http://codepen.io/rizky_k_r/full/sqcAn/
Horizontálny odkaz: http://codepen.io/rizky_k_r/pen/xFjqs

Rozbaľovacia ponuka CSS3

Horizontálne menu s veľkými položkami a rozbaľovacím zoznamom odkazov. Čistý a minimalistický kód bez js.
http://codepen.io/ojbravo/pen/tIacg

Jednoduché rozbaľovacie menu čistého CSS

Jednoduché, ale štýlové horizontálne menu. Používa font-awesome. Všetko funguje v css a html, bez js. V ie8 bude fungovať.
http://codepen.io/Responsive/pen/raNrEW

Mega-rozbaľovacia ponuka Bootstrap 3

Skvelé riešenie pre internetové obchody. Zobrazuje viacero úrovní kategórií a veľké obrázky (napríklad skladové položky). Je založený na boostrap 3.
http://codepen.io/organizedchaos/full/rwlhd/

Plochá navigácia

Štýlový navigačný panel s plynulými podmenu. V starších prehliadačoch sa zobrazí s problémami.
http://codepen.io/andytran/pen/YPvQQN

3D vnorená navigácia

Horizontálne menu s veľmi cool animáciami bez js!
http://codepen.io/devilishalchemist/pen/wBGVor

Responzívne Mega Menu - Navigácia

Horizontálne responzívne menu. Vyzerá dobre, ale mobilná verzia trochu pokulháva. Použité css, html a js.
http://codepen.io/samiralley/pen/xvFdc

Menu Pure Css3

Pôvodné menu. S jednoduchým a čistým kódom bez js. Použite pre efekty wow.
http://codepen.io/Sonick/pen/xJagi

Úplná rozbaľovacia ponuka CSS3

Farebné rozbaľovacie menu s jednou úrovňou vnorenia. Použité sú ikony z font-awesome, html a css.
http://codepen.io/daniesy/pen/pfxFi

Rozbaľovacia ponuka iba CSS3

Celkom dobré horizontálne menu s tromi úrovňami vnorenia. Funguje bez js.
http://codepen.io/riogrande/pen/ahBrb

Rozbaľovacie ponuky

Minimalistické menu s originálnym efektom vzhľadu vnoreného zoznamu položiek. Som rád, že toto riešenie je aj bez javascriptu.
http://codepen.io/kkrueger/pen/qfoLa

Čistá rozbaľovacia ponuka CSS

Primitívne, ale efektívne riešenie. Iba css a html.
http://codepen.io/andornagy/pen/xhiJH

Pull Menu - Menu Interaction Concept

Zaujímavý koncept menu pre mobilný telefón. Toto som ešte nevidel. Použité html, css a javascript.
http://codepen.io/fbrz/pen/bNdMwZ

Vytvorte jednoduchú rozbaľovaciu ponuku

Čistý a jednoduchý kód, bez js. V ie8 to určite pôjde.
http://codepen.io/nyekrip/pen/pJoYgb

Čistý rozbaľovací zoznam CSS

Nie je to zlé riešenie, ale používa sa príliš veľa tried. Som rád, že neexistuje js.
http://codepen.io/jonathlee/pen/mJMzgR

Rozbaľovacia ponuka

Pekné vertikálne menu s minimálnym kódom javascript. JQuery sa nepoužíva!
http://codepen.io/MeredithU/pen/GAinq

Rozbaľovacia ponuka CSS 3

Horizontálne menu s ďalšími titulkami môže dobre ozdobiť vašu stránku. Kód je jednoduchý a priamočiary. Javascript sa neuplatňuje.
http://codepen.io/ibeeback/pen/qdEZjR

Pekné riešenie s množstvom kódu (html, css a js). Boli vynájdené 3 formáty podmenu. Riešenie je vhodné pre internetové obchody.
http://codepen.io/martinridgway/pen/KVdKQJ

Rozbaľovacie ponuky CSS3 (špeciálne riešenie)!

Tmavé horizontálne menu s trinástimi (13) možnosťami animácie! Určite vám ju radím prečítať, v bežnom živote sa vám bude hodiť.
http://codepen.io/cmcg/pen/ofFiz

P.S.
Dúfam, že sa vám montáž 23 riešení páčila. Ak si ich chcete prečítať ďalej, prejdite si prieskum nižšie.
Užite si prácu, všetci.

Od autora: Vítam všetkých. Z nejakého dôvodu správcovia webu spájajú rozbaľovaciu ponuku so skriptami, ale dlhú dobu sa takáto navigácia dá robiť absolútne bezpečne pomocou čistého css. Navyše, takéto menu nebude o nič horšie. Dnes vám ukážem, ako vytvoriť rozbaľovaciu ponuku v css. Podelím sa takpovediac o recept.

Plán lekcie a rozvrhnutie nášho jedálneho lístka

Vo všeobecnosti sa najprv rozhodneme, ako vytvoríme samotné menu. V html5 je štandardným spôsobom vytvorenie v kontajneri navigácie pomocou zoznamu s odrážkami. Urobme len to. Značky neskôr odstránime pomocou css, v menu ich vôbec nepotrebujeme.

Vlastne okamžite napíšem značky s vnorenými zoznamami v html. To znamená, že náš zoznam bude dvojúrovňový – bude obsahovať ďalšie zoznamy. Totiž pre každú položku 1 zoznam, ktorý bude tvoriť rozbaľovaciu ponuku.

Je tu dôležitý bod, ktorý spočíva v tom, že možno nebudete musieť vytvoriť rozbaľovaciu ponuku pre každú položku, ale iba s niekoľkými. Žiadny problém, potom jednoducho nevytvoríme vnorené zoznamy v odsekoch bez vypadnutia.

V skutočnosti sú to všetky značky:

< nav id = "nav" >

< ul >

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

< ul class = "second" >

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

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

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

< / ul >

< / li >

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

< ul class = "second" >

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

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

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

< / ul >

< / li >

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

< ul class = "second" >

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

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

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

< / ul >

< / li >

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

< ul class = "second" >

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

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

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

< / ul >

< / li >

< / ul >

< / nav >

Chápem, že je obrovský. Toto je problém s vnorenými zoznamami, ktoré vyžadujú veľa kódu. Majte však na pamäti skutočnosť, že robíme 4 hlavné položky a pre každú bude rozbaľovacia ponuka.

V skutočnosti som nastavil identifikátor navigácie pre všetky navigácie a druhú triedu štýlu pre všetky vnorené zoznamy, aby som pochopil, že sú vnorené.

Skvelé, naše označenie je pripravené, môžete sa pozrieť na výsledok:

Áno, vyzerá to hrozne. Teraz ale zapneme css a o pár minút sa nám pretransformuje navigácia. Poďme do práce.

Písanie css štýlov

Prvá vec, ktorú urobím, je obnoviť všetky výplne na predvolené hodnoty pre všetky prvky. Budú nám len prekážať, je lepšie si zarážky nastaviť sami, kde je to potrebné.

* (okraj: 0; výplň: 0;)

okraj: 0;

výplň: 0;

#nav (výška: 70px;) #nav ul (štýl zoznamu: žiadny;)

#nav (

výška: 70px;

#nav ul (

zoznam - štýl: žiadny;

Teraz sa vlastne musíme rozhodnúť, aké bude naše menu. Horizontálne alebo vertikálne? Navrhujem najprv urobiť horizontálne a vidieť všetko na jeho príklade. Ak to chcete urobiť, musíte napísať nasledujúce štýly:

#nav> ul> li (float: left; width: 180px; position: relatívna;)

#nav> ul> li (

plavák: vľavo;

šírka: 180px;

poloha: relatívna;

Všimnite si, že znakom > odkazujeme na položky v zozname, ktoré sú priamo vnorené do ul, a ktoré sú priamo vnorené do navigácie. Je to veľmi dôležité, pretože vám to umožňuje nepoužiť štýl na položky vo vnorených zoznamoch. Faktom je, že podľa mojej predstavy budú položky v hlavnom zozname usporiadané horizontálne a vo vnorených - vertikálne.

Ale, samozrejme, môžete to urobiť aj inak, v súlade s vašou predstavou. Všetky položky môžete vytvoriť na jednom riadku.

Každopádne, vyššie uvedený kód, dúfam, že pochopíte. Núti položky v hlavnom zozname zarovnať doľava, takže sa všetky zmestia na rovnaký riadok, aj keď ide o blokové položky. Tiež som im dal explicitnú šírku a relatívne umiestnenie.

Na čo slúži polohovanie? Je potrebné, aby sa potom vnorené zoznamy úplne umiestnili. Ak ste študovali polohovanie v css, pravdepodobne viete, že ak nastavíte relatívne umiestnenie bloku, potom všetky prvky v ňom môžu byť umiestnené absolútne v tomto konkrétnom bloku a nie v celom okne prehliadača.

Medzitým tu je to, čo už máme:

Z tejto snímky obrazovky si už viete predstaviť približný výsledok. Samozrejme, odseky musíme ešte pekne ozdobiť, aby oči pri prezeraní navigácie neprosili o milosť.

#nav li a (displej: blok; pozadie: # 90DA93; orámovanie: 1px plný # 060A13; farba: # 060A13; výplň: 8px; zarovnanie textu: stred; dekorácia textu: žiadne;) #nav li a: vznášaj sa ( pozadie: # 2F718E ;)

#nav li a (

displej: blok;

pozadie: # 90DA93;

okraj: 1px plný # 060A13;

farba: # 060A13;

výplň: 8px;

text - zarovnať: stred;

text - dekorácia: žiadna;

#nav li a: podržte kurzor myši (

pozadie: # 2F718E;

Po prvé, samotné odkazy musia byť blokované. Je to nevyhnutné na to, aby výplň fungovala a všetky vlastnosti boli aplikované správne. Ďalej určím farby pozadia, text, parametre rámčeka, výplň a zarovnanie textu na stred. Nakoniec odstráňte podčiarknutie z odkazov.

Všetky tieto parametre nemusia byť napísané ako ja. Farby si môžete vybrať ľubovoľne, rámček odlíšiť alebo vôbec nepoužívať, odsadenie je možné zmenšiť alebo zväčšiť.

Všimnite si, že v tomto prípade sme nepoužili znak >, takže tieto pravidlá sa budú vzťahovať na všetky odkazy, vrátane odkazov vo vnorených odsekoch. Takže teraz máme nasledovné:

Skvelé, ale chápete, že podpoložky by nemali byť viditeľné, mali by sa otvoriť, keď umiestnite kurzor myši na požadovanú položku. Bez nej vyzerá náš jedálny lístok ako stôl. No, je čas skryť vnorené položky.

#nav li .second (zobrazenie: žiadne; pozícia: absolútna; hore: 100 %;)

#nav li .second (

displej: žiadny;

pozícia: absolútna;

horná časť: 100 %;

Najprv skryjeme úplne vnorené zoznamy. Po druhé, dáme im absolútne umiestnenie a hornú súradnicu: 100 %. To znamená, že rozbaľovacia ponuka sa zobrazí jasne pod hlavnou položkou, ku ktorej patrí, jasne pod 100 % výšky danej položky.

Teraz na webovej stránke vidíme iba hlavné menu, ktoré potrebujeme.

Implementácia odpadnutia

Musíme urobiť to najdôležitejšie – uvedomiť si samotnú prehru. Nie je na tom nič zložité, pozrite sa na tento kód:

#nav li: hover .second (display: block;)

#nav li: podržte kurzor myši .sekunda (

displej: blok;

Tento kód bude fungovať bezchybne. Keď umiestnite kurzor myši na položku v hlavnej ponuke, zobrazí sa vnorený zoznam. A iba zoznam, ktorý je vložený do položky, nad ktorou sa pohybuje kurzor.

Je tu len jeden menší problém – šírka vnorených položiek sa nezhoduje so šírkou tých hlavných. To sa však dá ľahko vyriešiť pridaním vhodných štýlov:

#nav li li (šírka: 180px;)

#nav li li (

šírka: 180px;

Všetko, problém je vyriešený:

Všetko funguje perfektne. Keď umiestnite kurzor myši na hlavnú položku, zobrazí sa príslušná rozbaľovacia ponuka. Ak posuniete kurzor na stranu, zmizne. Ak presuniete kurzor na samotné vnorené položky, môžete na ne kliknúť a prejsť na požadovanú časť lokality. Preto sme s vami vytvorili veľmi jednoduché a ľahké rozbaľovacie menu bez absolútne žiadnych skriptov.

Konverzia ponuky na vertikálnu

Dobre, dobre, s horizontálnou navigáciou sme sa úplne zbavili, ale okrem nej je na stránkach veľmi bežná aj vertikálna navigácia, ktorá môže byť aj rozbaľovacia. V skutočnosti je veľmi jednoduché zmeniť menu z horizontálneho na vertikálne, stačí zmeniť pár riadkov kódu.

Najprv budete musieť odstrániť plavák: vľavo z položiek hlavného zoznamu. Práve táto vlastnosť prispieva k tomu, že sa naše položky zobrazujú na jednom riadku, ale prečo to potrebujeme, ak má byť navigácia vertikálna?

Teraz zostáva zmeniť pravidlá pre selektor #nav li .second, teda pre vnorené zoznamy, konkrétne ich treba umiestniť trochu inak. Páči sa ti to:

#nav li .second (zobrazenie: žiadne; pozícia: absolútna; zľava: 100 %; hore: 0;)

#nav li .second (

displej: žiadny;

pozícia: absolútna;

vľavo: 100 %;

hore: 0;

To znamená, že je potrebné zaregistrovať dve súradnice namiesto jednej. Po prvé, v prípade horizontálnej navigácie som povedal, že podľa plánu by sa položky vnorených ponúk mali zobrazovať pod hlavnými položkami. V prípade vertikálneho menu to nie je vhodné – položky by sa mali zobrazovať na boku.

Zmeňte teda hornú časť: 100 % doľava: 100 %. Okrem toho potrebujeme aj hornú súradnicu. Nastavíme ho na 0, aby podmenu bolo na rovnakej úrovni ako položka, ktorej zodpovedá.

Všetko, teraz všetko funguje ako má. Môžete to otestovať. Ako vidíte, neklamal som, keď som povedal, že budem musieť prepísať len pár riadkov kódu.

Horizontálne menu s viacerými úrovňami

Použitím približne rovnakého prístupu môžete v prípade potreby vytvoriť viac úrovní ponuky. Vytvorme si napríklad zoznam pre štvrtú položku hlavného menu, ktorá bude vnorená do jednej z podpoložiek.

Úloha

Zobraziť zoznam s odrážkami vodorovne bez odrážok.

Riešenie

Značka zoznamu s odrážkami

    štandardne výstupy položiek
  • vertikálne nad sebou. Na vytvorenie navigačných prvkov je v niektorých prípadoch vhodné zobraziť zoznam horizontálne. Existuje niekoľko spôsobov, ako získať toto zobrazenie zoznamu.

    Už by ste si mali uvedomiť, že HTML obsahuje blokové a vložené prvky. Inline prvky nevytvárajú vlastné bloky, príkladom takýchto prvkov sú značky resp ... Prvky bloku sa zobrazia na novom riadku a vytvoria obdĺžnikový blok, ktorý je príkladom takýchto značiek

    alebo

    Takže značka

  • je tiež blokovým prvkom.

    Oštítkovať

  • sa nespráva ako blokový prvok, môžete použiť CSS na jeho vloženie.

    Vlastnosť zobrazenia CSS je zodpovedná za to, ako sa prvok zobrazí v dokumente. Zoberme si tri z jeho hodnôt (aj keď ich je viac):

    • blok - prvok sa zobrazí ako blok.
    • inline – prvok sa zobrazí ako inline.
    • inline-block - block-inline prvok, prečítajte si viac o tomto type prvku nižšie, budeme ho používať.

    Najprv vytvorte horizontálny zoznam prevedením jeho položiek na vložené prvky. V štýle CSS napíšeme pravidlo, v ktorom sa vlastnosť display nastaví na selektor li s hodnotou inline.

    Zoznam vodorovne



    Takže tento štýl fungoval a dostal položky zoznamu horizontálne:

    Obrázok 1. Práca z príkladu č. 1.

    Táto metóda má nevýhody. Je to preto, že vložené prvky majú v porovnaní s prvkami blokov určité obmedzenia. Napríklad im nemožno dať šírku a výšku, ale blokovým áno.

    Napríklad chceme, aby prvok ponuky, ktorý vytvárame, mal šírku 150px a výšku 40px. Skúsme zmeniť štýl na nasledujúci, to znamená pridať dve pravidlá určujúce veľkosť položky ponuky:

    Tieto úpravy nebudú mať za následok žiadne zmeny. Aby boli položky menu umiestnené horizontálne a bolo možné nastaviť ich šírku a výšku, je potrebné ich nastaviť na typ inline-block. Zmeňme kód nášho príkladu:

    Zoznam vodorovne



    Tento kód funguje a zmeny sú viditeľné:


    Obrázok 2. Práca z príkladu č. 2.

    Môžu však existovať rôzne možnosti, napríklad musíme zobraziť vnorené zoznamy v ponuke:

    Vnorený zoznam.



    Tu je výstup tohto kódu:


    Obrázok 3. Práca z príkladu č. 3.

    Vidíme, že bloky nie sú výškovo zarovnané tak, ako by sme chceli. Samozrejme, môžete zadať rovnakú výšku pre všetky bloky, no nie vždy vopred poznáme jej presnú hodnotu a môže sa meniť.

    Ale v skutočnosti, prečo sa to deje?

    Naše bloky majú vlastnosť zobrazenia nastavenú na inline-block. To znamená, že majú kvality ako blokových prvkov (možnosť špecifikovať šírku a výšku), tak aj inline prvkov. To, čo vidíme, je kvalita inline prvkov.

    Pozrime sa na reťazec so znakmi „A“ rôznych veľkostí:

    A A A A A A

    Vidíme, že všetky písmená sú vertikálne zarovnané so spodným riadkom. Presnejšie po základnej čiare, no teraz sa už do džungle nedostaneme. Takže to isté sa stalo s našimi blokmi.

    Vlastnosť vertical-align sa používa na vertikálne zarovnanie textu. V našom príklade č. 3 chceme použiť hodnotu top, ktorá zarovná horný okraj prvku k vrcholu najvyššieho prvku v riadku.

    Zatiaľ ho aplikujme na reťazec so znakmi „A“ rôznych veľkostí:

    A A A A A A

    Zdá sa, že písmená trochu "naskakujú". Ohraničenie CSS som nastavil na najvyššie písmeno, aby ste videli, že v skutočnosti nejde o žiadny skok, medzi horným okrajom (pozdĺž neho dochádza k zarovnaniu) a horným bodom znaku „A“ je prázdne miesto.

    Vlastnosť vertical-align musí byť aplikovaná na každý vložený prvok, nededí sa. Môžete si prečítať viac o tejto vlastnosti: vertical-align.

    Po tejto odbočke budeme pokračovať v horizontálnom usporiadaní položiek zoznamu.

    Druhý spôsob

    Položky zoznamu môžete umiestniť vodorovne pomocou vlastnosti float. Táto vlastnosť označuje, na ktorú stranu je prvok zarovnaný, má dve polohy: vľavo a vpravo.

    Tu je príklad použitia tohto kódu:

    Zoznam vodorovne



    Tu je výstup kódu:

    Obrázok 4. Práca na príklade.

    Zdá sa, že príklad funguje. Pri používaní tejto vlastnosti je však jedna výhrada. Teraz sa na to pozrieme. Vezmime si napríklad kód, v ktorom sú dva horizontálne zoznamy s rôznymi spôsobmi horizontálneho usporiadania prvkov: display a float:

    Zoznam vodorovne



    Tu je výstup kódu:

    Obrázok 5. Práca na príklade.

    V týchto príkladoch zoznam kontajnerov

      majú 1 pixel červený okraj. Ale horný zoznam, ktorý používa vlastnosť display, obsahuje položky zoznamu. Ale prvky zoznamu vytvoreného pomocou vlastnosti float vypadnú zo svojho kontajnera.

      Zároveň na prvý pohľad všetko funguje. Vymeňme si však zoznamy. Umiestnime zoznam s triedou menu-1 do kódu pred zoznam s triedou menu-2 (teraz je nižšie).

      Výsledkom je toto:

      Obrázok 6. Príklad operácie.

      Položky spodného menu sa pohybujú aj v hornej časti menu, pretože efekt vlastnosti float nebol zrušený a vzťahuje sa na všetky nasledujúce položky.

      Ako tento problém vyriešiť?

      Ak to chcete urobiť, musíte použiť vlastnosť clear, ktorá zruší tok prvku okolo iného prvku, ak má nastavenú vlastnosť float.

      Tu je upravený príklad s použitím vlastnosti clear:

      Zoznam vodorovne



      Vidno, že spodný zoznam už nedrží na hornom, prvky neprebiehajú cez seba. Ale v prvom zozname sú značky

    • sú stále mimo kontajnera
        .

        Obrázok 7. Práca na príklade.

        Navyše pri našej práci nie vždy vieme, ktorý prvok bude nasledovať po prvku s plavákom. Ideálne by bolo zatvoriť vlastnosť float v rovnakom bloku, v ktorom je otvorená.

        Toto sa vykonáva pomocou pseudoprvku. Tu je kód:

        Zoznam vodorovne



        Teraz máme 100% funkčný kód.

        Obrázok 8. Príklad spustenia.

        Táto technika s vlastnosťou float sa zvyčajne používa pri kódovaní stránok na zarovnanie stĺpcov, ktoré sú vytvorené značkami

        ... Takto získame normálnu konštrukciu stĺpov s požadovaným výškovým vyrovnaním. Keď tvoríme menu, tak vo väčšine prípadov pre nás nie je dôležitá výška blokov, tá je takmer vždy rovnaká. Preto je v týchto prípadoch celkom rozumné použiť pravidlo (zobraziť: inline-block).

        Ale pre úplnosť odhalenia témy sme sa tu oboznámili so všetkými možnými možnosťami. Hoci môžu existovať aj iné spôsoby, napríklad pomocou tabuliek CSS, vyhľadávače dôrazne odporúčajú používať tabuľky iba na určený účel a nie na organizáciu navigačných prvkov alebo čohokoľvek iného.

        Od autora: vitajte na našom blogu o vytváraní stránok. Toto je séria článkov venovaných novej špecifikácii a dnes by som vám chcel povedať, ako vytvoriť menu v html5 a ako sa tento proces líši od toho istého v predchádzajúcich verziách jazyka.

        ake su rozdiely

        V prvom rade by som chcel povedať, že ani špecifikácia nie je až taká nová – začala sa formovať už v roku 2009. V skutočnosti odvtedy dochádza k neustálemu vývoju - v html5 sa objavujú nové príležitosti, moderné prehliadače podporujú práve tieto schopnosti stále viac a viac, takže čoskoro bude možné hovoriť o plnej podpore tejto technológie, aj keď to nie je niečo ako jeden celok, skôr je to súbor nových funkcií, z ktorých každá je nezávislá.

        No dobre, aký je rozdiel medzi vytvorením hlavnej navigácie (menu), keďže čítate článok na túto tému, určite by tam mali byť nejaké rozdiely. No a ako vznikol jedálniček predtým? Zvyčajne používali zoznam s odrážkami, ktorý bol umiestnený v dodatočnom kontajneri pre všetku navigáciu - bežný div.

        Takže, s príchodom nových značiek, teraz môžete robiť správnejšie - namiesto značky div zabaľte ponuku do nav - nového sémantického prvku, ktorý bol vytvorený špeciálne na zhromažďovanie najdôležitejších odkazov a ich zoskupovanie.

        V navigácii môžete vložiť zoznam aj iba sadu odkazov. Zdá sa mi, že je to ešte jednoduchšie a správnejšie riešenie, aj keď v mnohých šablónach stále môžete vidieť implementáciu menu pomocou značiek ul, li, a.

        Zaujímavé je, že navigačný kontajner je navrhnutý špeciálne pre prioritné odkazy na stránke. V skutočnosti môže byť takýchto kontajnerov na stránke viac, no mali by sa do nich umiestniť len tie odkazy, ktoré skutočne tvoria hlavnú navigáciu (napríklad horná hlavná ponuka a jej duplikát v päte stránky).

        Ako vytvoriť horizontálne menu s html5

        V zozname nepotrebujete ani žiadne orámovanie, všetko sa spočiatku zobrazí na jednom riadku, keďže odkazy sú vložené prvky.

        Ďalšia vec je, že sú veľmi obmedzené v dizajne kvôli ich inline vlastnostiam. Môžete pracovať iba s takými vlastnosťami, ako sú: farba, veľkosť písma, okraje. Ak chcete nastaviť určitú farbu pozadia, urobiť oddeľovače a pridať vnútorné zarážky (alebo určiť veľkosť každej položky ponuky), nebudete to môcť urobiť pomocou čiary.

        Tu musíme previesť naše položky na blokové prvky. Aby to urobili, musia napísať vlastnosť:

        displej: blok;

        Teraz idú zhora nadol, to znamená, že naša navigácia sa stala vertikálnou. Aby to bolo opäť vodorovné, musíte pridať určité vlastnosti. Napríklad namiesto typu bloku pre ne definujte typ bloku v riadku alebo ich nastavte na (float: left). Prečítajte si viac o týchto metódach.

        Vertikálna navigácia

        Zvyčajne na vytvorenie vertikálneho menu v html5 používajú zoznam, ale označenie, ktoré som vám dal vyššie, je pre nás v poriadku. Ako ste videli, ak konvertujete odkazy na blokové odkazy, automaticky sa zoradia jeden po druhom zhora nadol, pretože dva bloky nemôžu stáť na rovnakom riadku.

        Teraz na ne môžete použiť potrebné pravidlá dizajnu. Na blokoch je oveľa viac vlastností ako na vloženom prvku, takže máte oveľa viac možností. Napríklad som pridal nasledovné:

        a (text-decoration: none; color: #fff; padding: 5px; font-size: 22px; display: block; background: linear-gradient (doprava, rgba (96,108,136,1) 0%, rgba (63,76,107) , 1) 100 %); šírka: 200 px; zarovnanie textu: na stred)

        text - dekorácia: žiadna;

        farba: #fff;

        výplň: 5px;

        font - veľkosť: 22px;

        displej: blok;

        pozadie: lineárne - gradient (doprava, rgba (96, 108, 136, 1) 0 %, rgba (63, 76, 107, 1) 100 %);

        šírka: 200px;

        text - zarovnať: na stred