.
Do základnej nádoby umiestnime obsah, ktorý potrebujeme.
) vytvorený v css vo forme samotného „hamburgerového tlačidla“, pomocou ktorého nadviažeme spojenie so skrytým začiarkavačom . Na to je povinné, názov atribútu for sa musí zhodovať s ID začiarkavacieho políčka. Pre iOS sa používa prázdny atribút onclick
webovej stránky <
ul>
<
li><
a href=
"#1"
>Jeden
a>
<
li><
a href=
"#2"
>Dva
a>
<
li><
a href=
"#3"
>Tri
a>
<
li><
a href=
"#4"
>Štyri
a>
<
li><
a href=
"#5"
>Päť
a>
<
li><
a href=
"#6"
>Šesť
a>
<
li><
a href=
"#7"
>Sedem
a>
ul>
Jeden Dva Tri Štyri Päť Šesť Sedem Týmto je naše bočné rozloženie ponuky ukončené. Je pravda, že je tu ešte jedna úplne voliteľná funkcia, je to pozadie stlmenia hlavného obsahu, keď je panel zapnutý. Ak to potrebujete, stačí napíšte pod menu alebo na akékoľvek iné miesto tela stránky ďalší kontajner div s určitou triedou:
<
div class
=
"mask-content"
>
div>
V ukážke som túto funkciu predvolene vylúčil z práce, komentoval som tento blok, ak ho náhle potrebujete, môžete ho ľahko nájsť a zapnúť rovnako ľahko))). Vo všeobecnosti, aby som uľahčil pochopenie html ukážkovej stránky, napísal som podrobné komentáre ku každému prvku, takže stratiť sa bude vyžadovať veľa úsilia.
Takže všetky potrebné prvky sú na svojom mieste, to najdôležitejšie a najzaujímavejšie zostáva, formovať vzhľad , farbu, tvar a pohyb v našom menu. Toto všetko urobíme výhradne s CSS. Žiadny javascript ani ďalšie obrázky.
css Nebudem popisovať každé pravidlo a vlastnosť, keďže som to robil priamo v css kód . Štýly pre panely umiestnené vľavo alebo vpravo sú takmer rovnaké, líšia sa len v niekoľkých hodnotách. V zdrojovom archíve sú obe možnosti zabalené ako samostatné súbory, takže si vyberte ten, ktorý potrebujete, správne ho pripojte k dokumentu a je to. Tu uverejňujem „mletý css“ pre ponuku, ktorá sa vysúva z ľavého okraja stránky:
/** * Prepínateľná bočná navigačná lišta * po kliknutí ľavým tlačidlom sa vysunie */ . navigácia ( /* šírka je ľubovoľná, môžete experimentovať */ šírka: 320px min-width: 320px; /* opraviť a nastaviť výšku panelu na maximum */ výška: 100 %; poloha: pevná; hore: 0 dole: 0 okraj: 0 /* posun (skrytie) panela vzhľadom na ľavý okraj stránky */ vľavo: -320px; /* vypchávka */ padding: 15px 20px; /* hladký prechod posun panela */ - prechod cez webkit: doľava 0,3 s; - moz-prechod: vľavo 0. 3s; prechod: vľavo 0. 3s; /* definujte farbu pozadia panela */ pozadie: #16a085; /* nad ostatnými prvkami */ z-index: 2000 ; ) /** * Tlačidlo prepínania panela * značka
*/
. nav-toggle( /* absolútna pozícia */ pozícia: absolútna; /* vzhľadom na ľavý okraj panela */ vľavo: 320px; /* výplň z horného okraja panelu */ vrchol: 1 m; /* vypchávka */ výplň: 0,5 em /* definujte farbu pozadia prepínača * častejšie podľa farby pozadia panela */ pozadie: zdediť; /* farba textu */ farba: #dadada; /* typ kurzora */ kurzor: ukazovateľ; /* veľkosť písma */ veľkosť písma: 1,2 em; výška riadku: 1 ; /* vždy nad ostatnými prvkami stránky */ z-index: 2001; /* animovať farbu textu pri umiestnení kurzora myši */ -webkit-transition: color . 25-s ľahký nábeh; - moz-prechod: farba . 25-s ľahký nábeh; prechod: farba . 25-s ľahký nábeh; ) /* definovať text tlačidla * znak Unicode (TRIGRAM FOR HEAVEN) */ . nav- toggle: after ( content: "\2630" ; text- decoration: none; ) /* farba textu po umiestnení kurzora myši */ . nav-toggle: hover ( farba: #f4f4f4; ) /** * Skryté zaškrtávacie políčko (zaškrtávacie políčko) * neviditeľné a neprístupné :) * atribút príznaku názvu selektora */ [ id="nav-toggle" ] ( position: absolute; display: none; ) /** * zmena polohy prepínača * pri pohľade na mobilné zariadenia * keď je navigácia rozbalená, vložte ju do panela */ [ id= "nav-toggle" ] : začiarknuté ~ . navigácia > . nav- toggle (vľavo: auto; vpravo: 2px; hore: 1m; ) /** * Keď je začiarknuté políčko, otvorí sa panel * použite pseudotriedu :checked */ [ id= "nav-toggle" ] : začiarknuté ~ . nav ( left: 0 ; box-shadow: 4px 0px 20px 0px rgba(0 , 0 , 0 , 0.5 ) ; - moz- box-shadow: 4px 0px 20px 0px rgba(0 , 0 , 0 , 0.5) ; - webkit - ; - box-shadow: 4px 0px 20px 0px rgba(0 , 0 , 0 , 0,5 ) ; overflow- y: auto; ) /* * obsah stránky posunutý * o veľkosť šírky panela, * funkcia je voliteľná, pre amatéra */ [ id= "nav-toggle" ] : začiarknuté ~ hlavný > článok ( - webkit- transform: translateX(320px) ; - moz- transform: translateX(320px) ; transform: translateX(320px) ; ) /* * zmena symbolu prepínača, * zvyčajný krížik (NÁSOBENIE X), * môžete použiť akúkoľvek inú ikonu */ [ id= "nav-toggle" ] : začiarknuté ~ . navigácia > . nav-toggle: after ( content: "\2715" ; ) /** * oprava chyby v systéme Android<= 4.1.2
* см: http://timpietrusky.com/advanced-checkbox-hack
*/
body ( - animácia webkitu: bugfix infinite 1s; ) @- webkit- keyframes bugfix ( to ( padding: 0 ; ) ) /** * postarajte sa o stredné a malé obrazovky * mobilných zariadení */ @ obrazovka média a (min. šírka: 320px) ( html, telo ( okraj: 0; pretečenie- x: skryté; ) ) @ obrazovka média a (maximálna šírka: 320px) ( html, telo ( okraj: 0; pretečenie- x: skryté; ) .nav (šírka: 100 %; tieňové pole: žiadne) ) /** * Vytvárame štýl nadpisu (loga) panelu */ . nav h2 ( šírka: 90 %; výplň: 0 ; okraj: 10 pixelov 0 ; zarovnanie textu: stred; tieň textu: rgba(255 , 255 , 255 , .1 ) - 1 pixel - 1 pixel 1 pixel, rgba (0 , 0 , 0 , .5 ) 1px 1px 1px; veľkosť písma: 1, 3 em; výška riadku: 1, 3 em; nepriehľadnosť: 0 ; transformácia: mierka(0,1, 0,1); -ms- transformácia: mierka(0,1, 0,1); - moz- transform: scale(0,1 , 0,1 ) ; - webkit- transform: scale(0,1 , 0,1 ); transform- origin: 0 % 0 %; - ms- transform- origin: 0 % 0 %; - moz- transform- pôvod: 0 % 0 % - webkit- transformácia- pôvod: 0 % 0 % - prechod: nepriehľadnosť 0. 8s, transformácia 0. 8s - ms- prechod: nepriehľadnosť 0. 8s, - ms- transformácia 0. 8s - moz-prechod : opacity 0,8s, -moz-transform 0,8s;-webkit-transition: nepriehľadnosť 0,8s, -webkit-transform 0,8s; ) . nav h2 a ( farba: #dadada; text- dekorácie: žiadna; text- transformácia: veľké písmená; ) /*plynulý vzhľad nadpisu (loga) pri otvorení panelu */ [ id= "nav-toggle" ] : začiarknuté ~ . nav h2 ( opacity: 1 ; transform: scale(1 , 1 ); - ms- transform: scale(1 , 1 ); - moz- transform: scale(1 , 1 ) ; - webkit- transform: scale(1 , 1 ) ) ;) /** * vytvorenie samotnej ponuky * použitie neusporiadaného zoznamu pre položky ponuky * upevnenie transformácií a hladké prechody */ . nav > ul ( display: block; margin: 0 ; padding: 0 ; list-style: none; ). nav > ul > li ( výška riadku: 2,5 ; nepriehľadnosť: 0 ; - webkit- transform: translateX(- 50 % ) ; - moz- transform: translateX(- 50 % ) ; - ms- transform: translateX(- 50 % ); transformácia: translateX(- 50 %) ; - prechod webkitu: nepriehľadnosť. 5 s. 1 s, - transformácia webkitu. 5 s. 1 s; - moz- prechod: nepriehľadnosť. 5 s. 1 s, - moz- transformácia. 5 s. 1 s ;- ms- prechod: nepriehľadnosť .5s .1s, - ms- transformácia .5s .1s; prechod: nepriehľadnosť .5s.1s, transformácia .5s.1s; ) [ id= "nav-toggle" ] : začiarknuté ~ . nav > ul > li ( nepriehľadnosť: 1 ; - webkit- transform: translateX(0) ; - moz- transform: translateX(0) ; - ms- transform: translateX(0) ; transform: translateX(0) ; ) /* určiť intervaly pre zobrazenie položiek ponuky */ . nav > ul > li: n-té dieťa(2) ( - webkit- prechod: nepriehľadnosť . 5 s . 2 s, - webkit- transformácia . 5 s . 2 s; prechod: nepriehľadnosť . 5 s . 2 s, transformácia . 5 s . 2 s; ) . nav > ul > li: n-té dieťa(3) ( - webkit- prechod: nepriehľadnosť . 5s . 3s, - webkit- transformácia . 5s . 3s; prechod: nepriehľadnosť . 5s . 3s, transformácia . 5s . 3s; ). nav > ul > li: n-té dieťa(4) ( - webkit- prechod: nepriehľadnosť . 5s . 4s, - webkit- transformácia . 5s . 4s; prechod: nepriehľadnosť . 5s . 4s, transformácia . 5s . 4s; ). nav > ul > li: n-té dieťa(5) ( - webkit- prechod: nepriehľadnosť . 5 s . 5 s, - webkit- transformácia . 5 s . 5 s; prechod: nepriehľadnosť . 5 s . 5 s, transformácia . 5 s . 5 s; ) . nav > ul > li: n-té dieťa(6) ( - webkit- prechod: nepriehľadnosť . 5s . 6s, - webkit- transformácia . 5s . 6s; prechod: nepriehľadnosť . 5s . 6s, transformácia . 5s . 6s; ). nav > ul > li: n-té dieťa(7) ( - webkit- prechod: nepriehľadnosť . 5 s . 7 s, - webkit- transformácia . 5 s . 7 s; prechod: nepriehľadnosť . 5 s . 7 s, transformácia . 5 s . 7 s; ) /** * odkazy na položky ponuky štýlu */ . nav > ul > li > a ( display: inline- block; position: relatívna; padding: 0 ; font- family: "Open Sans" , sans-serif; font-weight: 300 ; font-size: 1. 2em; color : #dadada;šírka: 100%;textová výzdoba: žiadna; /* hladký prechod */ -webkit-transition: color . 5s ľahkosť, polstrovanie . 5s ľahkosť; - moz-prechod: farba . 5s ľahkosť, polstrovanie . 5s ľahkosť; prechod: farba . 5s ľahkosť, polstrovanie . 5s ľahkosť; ) /** * stav odkazov na ponuku pri umiestnení kurzora myši */ . nav > ul > li > a:hover, . nav > ul > li > a: focus ( farba: biela; padding-left: 15px; ) /** * podčiarknuť odkazy ponuky */ . nav > ul > li >
a :
predtým {
obsahu :
""
;
displej :
blokovať ;
pozíciu :
absolútne ;
správny :
0
;
dno :
0
;
výška :
1px ;
šírka :
100
%;
-
webkit -
prechod :
šírka 0s ľahkosť ;
prechod :
šírka 0s ľahkosť ;
}
.
nav >
ul >
li >
a :
po {
obsahu :
""
;
displej :
blokovať ;
pozíciu :
absolútne ;
vľavo :
0
;
dno :
0
;
výška :
1px ;
šírka :
100
%;
pozadie :
#3bc1a0; -
webkit -
prechod :
šírka .
5 s ľahkosť ;
prechod :
šírka .
5 s ľahkosť ;
}
/** * animuje podčiarknutie * odkazov pri umiestnení kurzora myši */
.
nav >
ul >
li >
a :
vznášať sa :
predtým {
šírka :
0
%;
pozadie :
#3bc1a0; -
webkit -
prechod :
šírka .
5 s ľahkosť ;
prechod :
šírka .
5 s ľahkosť ;
}
.
nav >
ul >
li >
a :
vznášať sa :
po {
šírka :
0
%;
pozadie :
transparentný ;
-
webkit -
prechod :
šírka 0s ľahkosť ;
prechod :
šírka 0s ľahkosť ;
}
/* stmavenie pozadia na hlavnom obsahu * pri blokovaní prvkov * kontroverzná funkcia, ak ju potrebujete * stačí odkomentovať */
/* .mask-content ( displej: blok; pozícia: pevná; hore: 0; vľavo: 0; z-index: 1000; šírka: 100 %; výška: 100 %; farba pozadia: rgba(0, 0, 0 , 0,4); viditeľnosť: skryté; nepriehľadnosť: 0; ) :začiarknuté ~ .mask-content ( viditeľnosť: viditeľná; nepriehľadnosť: 1; -webkit-transition: nepriehľadnosť 0,5 s, viditeľnosť 0,5 s; prechod: nepriehľadnosť ,5 s, viditeľnosť . 5 s ;) */
/** * Prepínateľná bočná navigačná lišta * sa objaví po kliknutí ľavým tlačidlom */ .nav ( /* šírka je ľubovoľná, môžete experimentovať */ šírka: 320px; min-šírka: 320px; /* opraviť a nastaviť výšku panel na maximum */ výška: 100%; pozícia: pevná; horná: 0; spodná: 0; okraj: 0; /* posun (skrytie) panelu vzhľadom na ľavý okraj stránky */ doľava: -320px; /* padding */ padding: 15px 20px; / * hladký prechod posunu panela */ -webkit-transition: vľavo 0,3 s; -moz-transition: vľavo 0,3 s; prechod: ľavý 0,3 s; /* nastavenie farby pozadia panel */ pozadie: #16a085; /* nad ostatnými prvkami * / z-index: 2000; ) /** * Tlačidlo prepínania panela * značka */ .nav-toggle ( /* absolútna poloha */ poloha: absolútna; /* vzhľadom k ľavému okraju panela */ vľavo: 320px; /* odsadenie od horného okraja panela */ hore: 1 m; / * padding */ padding: 0,5 em; /* definujte farbu pozadia prepínača * častejšie podľa farby pozadia panela */ pozadie: zdediť; /* farba textu */ farba: #dadada; /* typ kurzora */ kurzor : ukazovateľ; /* veľkosť písma * / veľkosť písma: 1,2 em; výška riadku: 1; /* vždy navrchu ostatných prvkov stránky */ z-index: 2001; /* animácia farby textu pri umiestnení kurzora myši */ -webkit -prechod: farba 0,25s uvoľnenie-von; -moz-prechod: farba 0,25s uvoľnenie-von; prechod: farba 0,25s uvoľnenie-von-out; ) /* definovať text tlačidla * Znak Unicode (TRIGRAM FOR HEAVEN ) */ .nav-toggle:after ( content: "\2630"; text-decoration: none; ) /* farba textu pri umiestnení kurzora myši */ .nav-toggle:hover ( farba: #f4f4f4; ) /** * Skryté začiarkavacie políčko (zaškrtávacie políčko) * neviditeľné a nedostupné :) * atribút príznaku názvu selektora */ ( positi na: absolútne; displej: žiadny; ) /** * zmena polohy prepínača * pri prezeraní na mobilných zariadeniach * pri rozbalenej navigácii umiestnenie v paneli */ :začiarknuté ~ .nav > .nav-toggle (vľavo: auto; vpravo: 2px; hore: 1 m; ) /* * * Keď je políčko začiarknuté, panel sa otvorí * použite pseudotriedu :checked */ :checked ~ .nav ( left: 0; box-shadow:4px 0px 20px 0px rgba(0,0,0, 0,5 ); -moz-box-shadow :4px 0px 20px 0px rgba(0,0,0, 0,5); -webkit-box-shadow:4px 0px 20px 0px rgba(0,0,0, 0,5); overflow-y: auto; ) /* * obsah stránky posunutý * o šírku panela, * funkcia voliteľná, pre amatéra */ :začiarknuté ~ hlavný > článok ( -webkit-transform: translateX(320px); -moz-transform: translateX( 320px); transform: translateX(320px); ) /* * zmena symbolu prepínača, * vlastný krížik (NÁSOBENIE X), * môžete použiť akúkoľvek inú ikonu */ :checked ~ .nav > .nav-toggle:after ( obsah: "\2715"; ) /** * chyba predpony v systéme Android<= 4.1.2
* см: http://timpietrusky.com/advanced-checkbox-hack
*/ body {
-webkit-animation: bugfix infinite 1s;
} @-webkit-keyframes bugfix {
to {
padding: 0;
}
} /**
* позаботьтимся о средних и маленьких экранах
* мобильных устройств
*/ @media screen and (min-width: 320px) {
html,
body {
margin: 0;
overflow-x: hidden;
}
} @media screen and (max-width: 320px) {
html,
body {
margin: 0;
overflow-x: hidden;
}
.nav {
width: 100%;
box-shadow: none
}
} /**
* Формируем стиль заголовка (логотип) панели
*/ .nav h2 {
width: 90%;
padding: 0;
margin: 10px 0;
text-align: center;
text-shadow: rgba(255, 255, 255, .1) -1px -1px 1px, rgba(0, 0, 0, .5) 1px 1px 1px;
font-size: 1.3em;
line-height: 1.3em;
opacity: 0;
transform: scale(0.1, 0.1);
-ms-transform: scale(0.1, 0.1);
-moz-transform: scale(0.1, 0.1);
-webkit-transform: scale(0.1, 0.1);
transform-origin: 0% 0%;
-ms-transform-origin: 0% 0%;
-moz-transform-origin: 0% 0%;
-webkit-transform-origin: 0% 0%;
transition: opacity 0.8s, transform 0.8s;
-ms-transition: opacity 0.8s, -ms-transform 0.8s;
-moz-transition: opacity 0.8s, -moz-transform 0.8s;
-webkit-transition: opacity 0.8s, -webkit-transform 0.8s;
} .nav h2 a {
color: #dadada;
text-decoration: none;
text-transform: uppercase;
} /*плавное появление заголовка (логотипа) при раскрытии панели */ :checked ~ .nav h2 {
opacity: 1;
transform: scale(1, 1);
-ms-transform: scale(1, 1);
-moz-transform: scale(1, 1);
-webkit-transform: scale(1, 1);
} /**
* формируем непосредственно само меню
* используем неупорядоченный список для пунктов меню
* прикрутим трансфомации и плавные переходы
*/ .nav > ul ( display: block; margin: 0; padding: 0; list-style: none; ) .nav > ul > li ( line-height: 2.5; opacity: 0; -webkit-transform: translateX(-50%); -moz-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); -webkit-transition: opacity .5s .1s, -webkit-transform .5s S , transform .5s .1s; ) :checked ~ .nav > ul > li ( nepriehľadnosť: 1; -webkit-transform: translateX(0); -moz-transform: translateX(0); -ms-transform: translateX(0) ); transform: translateX(0); ) /* definujte intervaly položiek ponuky */ .nav > ul > li:nth-child(2) ( -webkit-transition: opacity .5s .2s, -webkit-transform .5s . 2s; prechod: nepriehľadnosť .5s .2s, transformácia .5s .2s; ) .nav > ul > li:nth-child(3) ( -webkit-transition: opacity .5s .3s, -webkit-transform .5s . 3s ;prechod: nepriehľadnosť .5s .3s, transformácia .5s .3s; ) .nav > ul > li:nth-child(4) ( -webkit-transition: nepriehľadnosť .5s .4s, -webkit-transform .5s .4s; prechod: nepriehľadnosť .5s .4s, transformácia .5s .4s; ) .nav > ul > li:nth-child(5) ( -webkit-transition: opacity .5s .5s, -webkit-transform .5s .5s; transition: opacity .5s .5s, transform .5s .5s; ) .nav > ul > li:nth-child(6) ( -webkit-transition: opacity .5s .6s, -webkit-transform .5s .6s; transition: opacity .5s .6s, transform .5s .6s; ) . nav > ul > li:nth-child(7) ( -webkit-transition: opacity .5s .7s, -webkit-transform .5s .7s; transition: opacity .5s .7s, transform .5s .7s; ) /* * * štýl odkazu položky ponuky */ .nav > ul > li > a ( display: inline-block; position: relatívne; padding: 0; font-family: "Open Sans", sans-serif; font-weight: 300; font-size: 1.2em; color: #dadada; width: 100%; text-decoration: none; /* plynulý prechod */ -webkit-transition: color .5s easy, padding .5s easy; -moz-transition: color 0,5 s ľahkosť, výplň 0,5 s ľahkosť; prechod: farba ,5 s ľahkosť, výplň 0,5 s ľahkosť; ) /** * stav odkazov na ponuku pri umiestnení kurzora myši */ .nav > ul > li > a:hover, .nav > ul > li > a:focus ( farba: biela; vypchávka vľavo : 15px; ) /** * podčiarknutie odkazu ponuky */ .nav > ul > li > a:pred ( obsah: ""; zobrazenie: blok; pozícia: absolútna; vpravo: 0; dole: 0; výška: 1px; šírka: 100 % ; -webkit-transition: width 0s easy; transition: width 0s easy; ) .nav > ul > li > a:after ( content: ""; display: block; position: absolute; left: 0; bottom: 0; height : 1px; šírka: 100 %; pozadie: #3bc1a0; -webkit-transition: width . 5s ľahkosť; prechod: šírka .5s ľahkosť; ) /** * animácia podčiarknutia * odkazy pri umiestnení kurzora myši */ .nav > ul > li > a:hover:before ( šírka: 0 %; pozadie: #3bc1a0; -webkit-transition: width 0,5s ľahkosť; prechod: šírka .5s ľahkosť; ) .nav > ul > li > a:hover:after ( šírka: 0 %; pozadie: priehľadné; -webkit-transition: šírka 0s ľahkosť; prechod: šírka 0s ľahkosť; ) /* stmavenie pozadia na hlavný obsah * pri blokovaní prvkov * kontroverzná funkcia, ak ju potrebujete * odkomentujte */ /* .mask-content ( zobrazenie: blok; pozícia: pevná; hore: 0; vľavo: 0; z-index: 1000; šírka: 100 % ; výška: 100 %; farba pozadia: rgba(0, 0, 0, 0,4); viditeľnosť: skrytá; nepriehľadnosť: 0; ): začiarknuté ~ .mask-content ( viditeľnosť: viditeľné; nepriehľadnosť: 1; -webkit -transition : nepriehľadnosť 0,5 s, viditeľnosť 0,5 s; prechod: nepriehľadnosť ,5 s, viditeľnosť 0,5 s; ) */
Ako viete, takmer všetky hodnoty vlastností sú voliteľné, t.j. všetky jeho prvky môžete ľahko zmeniť podľa svojho vkusu a farby, dúfam, že vysvetlenia vám s tým pomôžu. No ak niečo nešliape, alebo sa nájde nejaké moje prevýšenie, napíšte do komentárov, určite na to prídeme a opravíme.
Na záver vám chcem pripomenúť, že nie všetky prehliadače sú rovnako dobré v zaobchádzaní s vlastnosťami CSS3. Toto riešenie je, samozrejme, veľmi zaujímavé, ale stále experimentálnejšie. Po nastavení podľa vašich potrieb, pred pevným priskrutkovaním na pracovisko, nezabudnite skontrolovať jeho funkčnosť rôzne prehliadače a na rôznych mobilných zariadeniach.
Pozrite si výsledok ešte raz, stiahnite si zdrojový archív, experimentujte s rôznymi parametrami a vytvorte, vytvorte, vytvorte...
V blízkej budúcnosti sa pokúsim povedať a ukázať ako, na základe toto rozhodnutie , môžete jednoducho implementovať výsuvné, bočné panely s ďalšími rovnako dôležitými prvkami na interakciu s používateľmi na palube.
Teraz majú používatelia možnosť zoznámiť sa s . Všetky sú prezentované v samostatnej kategórii, ktorú nájdete na trhu TemplateMonster. Nemali by s nimi byť žiadne problémy. Stačí pridať svoj jedinečný obsah a máte hotovo – môžete začať podnikať a prilákať stále viac a viac čitateľov. Je tiež veľmi dôležité pamätať na to, že text pre každú šablónu bol napísaný rukou.
So všetkou úctou, Andrew
Dobrý deň, milí čitatelia. Dnes budeme diskutovať o téme ako na to horizontálne menu pomocou HTML a CSS ". Menu sa spravidla nachádza v hlavičke stránky a je zoznamom odkazov na najdôležitejšie stránky, nazýva sa tiež hlavné menu . Používatelia budú neustále klikať na tieto odkazy. To, ako ich usporiadate a aký dizajn menu dáte, ovplyvní správanie používateľov, konverziu, ich celkový zážitok z vašej stránky a samozrejme .
HTML kód pre horizontálne menu
Kedysi bolo hlavné menu pre stránku robené na obrázkoch, tabuľkách, flashi a možno aj niečom inom, no v súčasnosti je najobľúbenejší a najsprávnejší spôsob vytvárania menu pomocou značiek „zoznam“.
Tagy sa používajú na vytváranie menu.
Príklad použitia značiek html na vytvorenie ponuky v nižšie uvedenom kóde:
Domov
Služby
Ceny
Kontakty
Štandardné štýly CSS pre horizontálne menu ul ( štýl zoznamu: žiadny; /*odstrániť značky zoznamu*/ okraj: 0; /*odstrániť výplň*/ výplň-vľavo: 0; /*odstrániť výplň*/ ) a (ozdobenie textu: žiadne; /*odstrániť podčiarknutie text odkazu*/ ) li ( float:left; /*Umiestnite zoznam vodorovne, aby ste implementovali ponuku*/ margin-right:5px; /*Odsadenie položiek ponuky*/ ) Dostávame hotové horné menu v hlavičke, bez špeciálnych štýlov a zvončekov a píšťaliek, to sa dá nazvať rámom vašej budúcnosti krásne menu . Ak skopírujete a prilepíte tento html a css, bude to vyzerať takto.
Príklad rámčeka (šablóny) pre vaše budúce menu
Všetko sa ukázalo celkom jednoducho, samozrejme chcete hneď krásne hlavné menu, ale bez pochopenia základov jednoducho nebudete môcť vytvoriť dobré menu bez chýb v html a css.
Okrem float:left; existuje aj niekoľko ďalších metód CSS používaných na vytvorenie horizontálnych ponúk; , napríklad display:inline-block; alebo display:flex; , ale odporúča sa použiť metódu opísanú vyššie.
Naplňte našu šablónu menu rôznymi štýlmi a urobme to krásne .
Príklady krásneho horizontálneho menu pre webovú stránku
Teraz predstavím niekoľko hotové príklady s hotovým horizontálnym dizajnom menu.
Všetky „pekné veci“ pre svoju stránku si môžete vytvoriť sami a nemusíte ich hľadať na internete. Najjednoduchší spôsob, ako to urobiť, je založený na jednom z nižšie uvedených príkladov.
Jednoduché modré menu so samostatnými položkami
CSS štýly pre „horné“ menu
Nižšie sú uvedené štýly pre túto ponuku. HTML zostáva rovnaké ako v menu "kostra".
Ul ( list-style: none; /*odstrániť značky zoznamu*/ okraj: 0; /*odstrániť výplň*/ padding-left: 0; /*odstrániť výplň*/ margin-top:25px; /*indent top*/ ) a ( dekorácia textu: žiadna; /*odstrániť podčiarknutie textu odkazu*/ pozadie:#30A8E6; /*pridať pozadie k položke ponuky*/ farba:#fff; /*zmeniť farbu odkazu*/ výplň:10px; /*pridať výplň */ rodina fontov: arial; /*zmena fontu*/ border-radius:4px; /*pridať zaokrúhľovanie*/ -moz-prechod: všetkých 0,3 s 0,01 s ľahkosť; /*urobiť plynulý prechod*/ -o-prechod : všetky 0,3 s 0,01 s ľahkosť; -webkit-transition: všetky 0,3 s 0,01 s ľahkosť; ) a:hover ( pozadie:#1C85BB;/*pridať efekt vznášania*/ ) li ( float:left; /*uložiť zoznam vodorovne na implementovať ponuku*/ margin-right:5px; /*Odsadiť položky ponuky*/ )
Hlavné menu umiestnené na farebnom riadku s červeným pozadím
Ponuka štýlu css na farebnom riadku ul ( štýl zoznamu: žiadny; /*odstrániť značky zoznamu*/ okraj: 0; /*odstrániť výplň*/ výplň-vľavo: 0; /*odstrániť výplň*/ okraj-vrchu:25px; /*odsadiť hornú časť*/ pozadie :#FF4444; /*pridať pozadie do celej ponuky (výmena tohto parametra zmení farbu celej ponuky)*/ height: 50px; /*nastaviť výšku*/ ) a ( text-decoration: none; /* odstrániť podčiarknutie textu odkazu* / pozadie:#FF4444; /*pridať pozadie k položke ponuky (výmena tohto nastavenia zmení farbu všetkých položiek ponuky)*/ color:#fff; /*zmena farbu odkazu* / padding:0px 15px; /*pridať odsadenie*/ font-family: arial; /*zmena písma*/ line-height:50px; /*zarovnanie ponuky vertikálne*/ display: block; border-right: 1px solid # F36262; /*pridať orámovanie doprava*/ -moz-transition : všetkých 0,3 s 0,01 s ľahkosť; /*urobiť plynulý prechod*/ -o-prechod: všetkých 0,3 s 0,01 s ľahkosť; -webkit-transition: všetko 0,3 s 0,01 s ľahkosť; ) a:hover ( pozadie:#D43737;/ *pridať efekt vznášania*/ ) li ( float:left; /*uložiť zoznam vodorovne Ponuka*/ ) Rozbaľovacia ponuka v HTML+CSS
Na realizáciu ďalšie rozbaľovacie (rozbaľovacie) menu na stránke pre akúkoľvek položku ponuky musíme do kódu HTML pridať ďalší zoznam položiek pre akýkoľvek odkaz z horizontálnej ponuky a zmeniť štýly CSS. V štýloch použijeme jednoduchý trik – zmenu zobrazenia roletového menu pri prejdení myšou na položku, ktorú potrebujeme v horné menu . Zoberme si napríklad položku „služby“.
Príklad vytvorenia jednoduchého rozbaľovacieho menu
HTML kód rozbaľovacej ponuky
Domov
Služby
Služba 1
Dlhá služba 2
Služba 3
Ceny
Kontakty
Rozbaľovacia ponuka Štýly CSS ul ( štýl zoznamu: žiadny; /*odstrániť značky zoznamu*/ okraj: 0; /*odstrániť výplň*/ výplň-vľavo: 0; /*odstrániť výplň*/ okraj-vrchu:25px; /*odsadiť hornú časť*/ pozadie :#819A32; /*pridať pozadie do celej ponuky*/ výška: 50px; /*nastaviť výšku*/ ) a ( text-decoration: none; /*odstrániť podčiarknutie textu odkazu*/ pozadie:#819A32 ; /*pridať pozadie k položke ponuky*/ color:#fff; /*zmena farby odkazov*/ padding:0px 15px; /*pridať odsadenie*/ font-family: arial; /*zmena fontu*/ line-height :50px; /*zarovnať ponuku na vertikály*/ display: block; border-right: 1px solid #677B27; /*pridať orámovanie doprava*/ -moz-transition: all 0,3s 0,01s easy; /*urobiť hladký prechod*/ -o-prechod: všetko 0,3 s 0,01 s ľahkosť; -webkit-prechod: všetko 0,3 s 0,01 s ľahkosť; ) a:hover ( background:#D43737;/*Pridať efekt vznášania*/ ) li ( float :left; /*Umiestnite zoznam vodorovne na implementáciu ponuky* / position:relative; /*nastavte polohu pre umiestnenie*/ ) /*Štýly pre skrytú rozbaľovaciu ponuku* / li > ul ( poloha:absolútna; top:25px; displej:žiadny; ) /*Zviditeľniť skrytú časť*/ li:hover > ul ( display:block; width:250px; /*Nastavte šírku rozbaľovacej ponuky*/ ) li:hover > ul > li ( float:none; /* Odstráňte horizontálne umiestnenie* / ) A aby ste presne pochopili, aké služby a kategórie by ste mali mať, odporúčam vám, aby ste sa oboznámili s materiálom:.
Snažil som sa vám čo najstručnejšie povedať, ako vytvoriť hlavné horizontálne menu, urobiť niekoľko šablón, ako doň pridať jednoduché štýly a urobiť ho krajším, ako urobiť rozbaľovacie menu pre vašu stránku. Pre pohodlie som zhromaždil všetky vyššie uvedené ponuky do jedného html súboru, ktorý si môžete stiahnuť nižšie. Vyzerá to ako na snímke obrazovky:
Ďakujem za pozornosť.
V tomto návode si spravíme klasické horizontálne menu na čistý CSS . V zoznamoch má ikony. Pri umiestnení kurzora myši nad položku plynule zmení farbu tlačidla a textu a pridá tieň. Rozbaľovacie zoznamy môžu byť vytvorené na viacerých úrovniach, a čo je najdôležitejšie, všetko je celkom jednoducho implementované v čistom CSS3.
V lekcii budeme používať:
displej:flex;
použiť prechod;
prvky umiestnime pomocou position .
HTML štruktúra horizontálneho menu
Najprv si napíšme označenie pre horizontálne menu. Otvoríme naše vývojové prostredie v mojom prípade je to PhpStorm , vytvoríme súbor index.html, napíšeme framework html:5, nahradíme lang ru.
Vymažem všetky meta okrem kódovania, napíšem svoj názov " tom menu ».
Medzi telo napíšeme tag header a v ňom je blok s triedou .dws-menu, v ktorom sa bude nachádzať naše menu. Ďalej bude štruktúra nasledovná, vytvoríme zoznamy v počte piatich kusov. Každý zoznam bude mať prepojenie s atribútom href="#". Potom tam bude ikona I s triedou .fa .fa-
Kliknite na použiť.
Napíšme názov položiek ponuky ( Domov, Produkty, Služby, Novinky, Kontakty ).
Ďalej vyberte a pripojte ikony. Prejdeme na webovú stránku Font Awesome, vyberieme ikony pre tieto položky ponuky:
Archív stiahneme zo stránky s ikonami, rozbalíme jeho obsah do nášho počítača, skopírujeme priečinok fonts a priečinok css do nášho vývojového prostredia.
Priečinok fonts obsahuje fonty ikon a priečinok css obsahuje ich štýly. Komprimované štýly je možné odstrániť pomocou font-awesome.min , vrátane nekomprimovaného font-awesome.css .
V index.html spájame ikony a každej položke predpisujeme vlastný štýl ikony ( Domov , nákupný vozík , ozubené kolesá , th-zoznam , obálka-otvorená ).
Urobili sme hlavný rám, po opísaní hlavného štýlu vytvoríme podmenu a teraz vytvoríme súbor, kde popíšeme hlavné štýly horizontálneho menu style.css a pripojíme ho k index.html . Aby som skontroloval, či sú štýly prepojené, vytvorím si priečinok img , do ktorého umiestnim ľubovoľný obrázok pozadie . Spojenie obrázku napíšeme pomocou pozadia .
Body( background-image: url(../img/ep_naturalwhite.png"); )
Popis štýlov CSS pre horizontálnu ponuku
Najprv obnovme všetky zarážky, ktoré môžu rôzne prehliadače predvolene nastaviť:
Dws-menu *( okraj: 0; výplň: 0; )
Nastavíme hlavičku na 200 pikov. a priraďte font Cuprum, ktorý si môžete stiahnuť a samostatne pripojiť k vašej stránke, pre každý prípad napíšeme ďalšie fonty.
Hlavička (okraj: 200px; rodina písiem: Cuprum, Arial, Helvetica, bezpätkové; )
Skryjeme značky zo zoznamov:
dws-menu ul, .dws-menu ol( štýl zoznamu: žiadny; )
Ukážme zoznamy vodorovne s displejom: ľan a urobme ho na stred:
Dws-menu > ul( display: flex; justify-content: center; )
V hlavičke odsadzujme iba zhora, napíšme margin-top .
Hlavička( margin-top: 200px; rodina písiem: Cuprum, Arial, Helvetica, bezpätkové; )
Poďme si navrhnúť naše menu, nastaviť farbu tlačidiel, písmo atď.
Dws-menu > ul li a( display: block; background: #ececed; padding: 15px 30px 15px 40px; font-size: 14px; color: #454547; text-decoration: none; text-transform:uppercase; )
Potom umiestnime ikony, priradíme zoznamom pozíciu: relatívna; na ďalšie vycentrovanie ikon:
dws-menu > ul li( pozícia: relatívna; )
dws-menu > ul li > a i.fa( pozícia: absolútna; hore: 15px; vľavo: 12px; font-size: 18px; )
Priraďme zoznamom oddeľovač hraníc, vyberieme prvý prvok LI a nastavíme hranicu. Vyberieme posledný prvok LI a priradíme mu podobnú hranicu.
Dws-menu > ul li:first-child( border-left: 1px solid #b2b3b5; ) .dws-menu > ul li:last-child( border-right: 1px solid #babbbd; )
Vytváranie oddeľovačov pre zoznamy LI:
.dws-menu > ul li( poloha: relatívna;
border-right: 1px solid #c7c8ca;
}
Menu nadobudlo vzhľad, potom môžete začať popisovať štýly pri prechode myšou.
Animujte vodorovnú ponuku umiestnením kurzora myši
Dws-menu li a:hover( background: #454547; color: #ffffff; box-shadow: 1px 5px 10px -5px black; transition: all 0,3s easy; )
A aby tento efekt hladko zmizol, pridajte tento štýl do odkazu v pokoji:
.dws-menu > ul li a( display: block; background: #ececed; padding: 15px 30px 15px 40px; font-size: 14px; color: #454547; text-decoration: none; text-transform:uppercase; prechod: všetkých 0,3 s ľahkosť; ) Hlavné menu je hotové a môžete začať popisovať podmenu a ich podmenu.
Popis rozbaľovacej ponuky CSS/HTML
Otvoríme index.html a k produktom pridáme napríklad doplnkové menu. Medzi zoznamy LI vložíme UL , umiestnime doň päť zoznamov, v ktorých budú odkazy s atribútom herf=”#” .
ul>li*5>a
Kliknite na použiť, napíšte názvy položiek ( Oblečenie, elektronika, jedlo, náradie, život. chémia ).
oblečenie
Elektronika
Jedlo
Nástroje
Gen. chémia
Potom otvoríme style.css a popíšeme štýly podmenu.
Vyberte druhý zoznam a dajte mu pozíciu: absolútna; , nastavte minimálnu šírku na 150 pixelov.
/*podponuka*/ .dws-menu li ul( pozícia: absolútna; minimálna šírka: 150px; )
Do zoznamov zapíšeme hranicu 1 vrcholu.
Dws-menu li > ul li( orámovanie: 1px plné #c7c8ca; )
Pre odkazy v podponuke nastavte výplň na 10 pixelov, odstráňte transformáciu textu a stmavte pozadie o niekoľko tónov: #e4e4e5; .
Dws-menu li > ul li a( padding: 10px; text-transform: none; background: #e4e4e5; )
Potom vytvoríme ďalšie vnorené menu. Poďme do súboru značiek a napríklad v "Elektronika" vytvoríme menu analogicky, ako sme to urobili predtým. Opíšte nadpisy odsekov ( Fotoaparáty, počítače, telefóny ) a uložte.
Elektronika
Sú zobrazené, ale skryté pod hlavným menu, teraz pozícia: absolútna; vnorené UL a posunúť ho o 150 vrcholov. na stranu:
Dws-menu li > ul li ul( pozícia: absolútna; vpravo: -150 pixelov; hore: 0; )
/*podmenu*/ .dws-menu li ul( pozícia: absolútna; minimálna šírka: 150px; displej: žiadny; ) A pre ich vzhľad vyberieme zoznamy pri umiestnení kurzora myši a zobrazíme ich pomocou display: block; .
dws-menu li:hover > ul( display: block; )
Teraz môžete pridať vrstvené menu jednoduchým skopírovaním UL bloku, zmenou jeho doložiek.
Domov
Produkty
oblečenie
Elektronika
Jedlo
Nástroje
Gen. chémia
Služby
Služba 1
Služba 2
Služba 3
Správy
Kontakty
Potom ozdobíme gombíky ingredienciou na posledné kroky. Používam CSS generátor, mám vytvorených niekoľko Presetov, môžete si vytvoriť vlastný, v mojom prípade len kopírujem daný kód a umiestnite pozadie, ktoré som napísal predtým.
.dws-menu > ul li a( display: block;
/* Trvalý odkaz – použite na úpravu a zdieľanie tohto prechodu: http://colorzilla.com/gradient-editor/#c9c9c9+0,f6f6f6+2,c4c5c7+98,757577+100;Vlastné+3 */ pozadie: #c9c9c9 ; /* Staré prehliadače */ pozadie: -moz-linear-gradient(top, #c9c9c9 0%, #f6f6f6 2%, #c4c5c7 98%, #757577 100%); /* FF3.6-15 */ pozadie: -webkit-linear-gradient(top, #c9c9c9 0%,#f6f6f6 2%,#c4c5c7 98%,#757577 100%); /* Chrome10-25,Safari5.1-6 */ pozadie: linear-gradient(to bottom, #c9c9c9 0%,#f6f6f6 2%,#c4c5c7 98%,#757577 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#c9c9c9", endColorstr="#757577",GradientType=0); /* IE6-9 */
padding: 15px 30px 15px 40px; veľkosť písma: 14px; farba: #454547; text-dekorácia: žiadna; text-transform:veľké písmená; prechod: všetkých 0,3 s ľahkosť; ) .dws-menu li a:hover( /* Trvalý odkaz - použite na úpravu a zdieľanie tohto prechodu: http://colorzilla.com/gradient-editor/#e0e1e5+0.454547+2.454547+98,e0e1e5+100 */ pozadie: #e0e1e5; /* Staré prehliadače */ pozadie: -moz-linear-gradient(top, #e0e1e5 0%, #454547 2%, #454547 98%, #e0e1e5 100%); /* FF3.6-15 */ pozadie: -webkit-linear-gradient(top, #e0e1e5 0%,#454547 2%,#454547 98%,#e0e1e5 100%); /* Chrome10-25,Safari5.1-6 */ pozadie: linear-gradient(to bottom, #e0e1e5 0%,#454547 2%,#454547 98%,#e0e1e5 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#e0e1e5", endColorstr="#e0e1e5",GradientType=0); /* IE6-9 */
farba: #ffffff; box-shadow: 1px 5px 10px -5px čierny; prechod: všetkých 0,3 s ľahkosť; )
Ak je to žiaduce toto menu na stránke si môžete zariadiť štýl, ktorý vám vyhovuje, je celkom jednoduché vygenerovať farbu a nahradiť ju v kóde. Výsledkom je jednoduché a zároveň pekné horizontálne menu vytvorené čistým CSS.
V tomto príspevku vytvoríme pevnú bočnú informačnú ponuku. Na implementáciu ikon pripojíme písmo .
Krok 1. Spojte písmo s ikonami, vytvorte prázdny dokument
Podrobné informácie o práci s fontom FontAwesome a odkaz na samotný projekt nájdete v mojom príspevku -.
Tu je kód stránky s pripojenými súbormi:
Opravené bočné menu
Krok 2: Pridanie značky HTML s pevnou ponukou
Tu je značkovací kód pre našu pevnú ponuku:
Ako ste si všimli, použil som značku - toto je značkovací prvok html5, ak používate html4, môžete túto značku nahradiť bežnou značkou alebo ho úplne odstráňte a presuňte identifikátor do zoznamu takto: