Vytvárame štýlové rozbaľovacie zoznamy. Výber z rozbaľovacieho zoznamu v rozbaľovacom zozname HTML na css s kurzorom myši
Dnes vám chcem predstaviť malý „recept“ na vytvorenie zoznamu v CSS. Žiadne JQuery, žiadne CSS3 – len staré dobré CSS pre rôzne prehliadače. Príklad je celkom jednoduchý, takže skúsených súdruhov to nemusí zaujímať. Implementujeme rozbaľovací zoznam so sociálnymi tlačidlami.
Nehovorme teda dlho, poďme rovno k veci
HTML
Zdieľajte tento príspevok
- Google Plus
- V kontakte s
- RSS
Zámerne vynechávam všeobecné body, ako napríklad zaraďovanie štýlov, aby sa kód nerozrastal. V spodnej časti stránky dám odkaz na zdroje - je tam všetko.
To, čo máme v HTML, je bežný zoznam a nezvyčajná hlavička. Jeho nezvyčajnosťou je, že je vyrobený s hypertextovým odkazom, ktorý umožňuje sledovať udalosť :vznášať sa, teda vedenie. Rozbaľovací zoznam bude fungovať, keď umiestnite kurzor myši na názov.
CSS
Najprv sa pozrime na základné štýly rozbaľovacieho zoznamu. Snažil som sa komentovať každý riadok kódu, aby to bolo jasnejšie:
/*Resetovať výplň*/ .droplink ul,.droplink h3,.droplink h3 a( padding:0;margin:0 ) /*Základný obal*/ .droplink ( width:200px; position:absolute; margin:10px 0 0 25px ) /*Štýl bloku kurzora*/ .droplink:hover( height:auto; background-color:#3E403D; border:solid 1px #3A3C39 ) /*Titul v normálnom stave*/ .droplink h3 a( text-align:center ; width:100%; display:block; padding:12px 0px; color:#999; text-decoration:none ) .droplink h3 a img(border:none) /*Štýl pre názov pri umiestnení kurzora*/ .droplink:hover h3 a ( farba:#FFF; váha písma: tučné; pozícia: absolútna )
Nie je tu nič zvláštne; veľkosť a štýl bloku, štýl hlavičky a pre oba prvky aj ich štýly sme uviedli pri umiestnení kurzora. Pokračujte:
/*Skryť zoznam bez kurzora*/ .droplink ul( list-style:none; display:none ) /*Zobraziť zoznam pri umiestnení kurzora myši*/ .droplink:hover ul( display:block; margin-top:40px ) .droplink li (zobrazenie:blok)
Tento kód je zaujímavejší a ukazuje, ako sa správa rozbaľovací zoznam pri podržaní kurzora. V normálnom stave to stojí displej: žiadny, to znamená, že sa nezobrazuje. Po umiestnení kurzora myši ho zobrazíme ako blok. To je celé tajomstvo. Teraz trochu ozdobíme prvky zoznamu a vložíme ikony:
/*Štýl položky zoznamu*/ .droplink li a( padding:5px 12px 4px 34px; margin:1px; background-color:#484A47; display:block; color:#FFF; text-decoration:none; font-size:12px ; background-repeat:no-repeat; background-position: 10px 3px ) /*Štýl prechodu na prvok*/ .droplink li a:hover( background-color:#999 ) /*Icons*/ .facebook a (obrázok na pozadí : url("ikony/facebook.png")) .twitter a (obrázok na pozadí:url("ikony/twitter.png")) .vk a (obrázok na pozadí:url("ikony/vk.png")) . rss a (obrázok na pozadí:url("ikony/rss.png")) .gplus a (obrázok na pozadí:url("ikony/gplus.png"))
To je vlastne všetko. Rozbaľovací zoznam je pripravený a vyzerá celkom pekne. Prvky môžete navrhnúť podľa vlastného uváženia, pridať zaoblené rohy a iné zvončeky a píšťalky.
Ak chcete, aby zoznam pri umiestnení kurzora myši „prekrýval“ text pod ním, pozrite sa na stranu z-index.
Ak vám niečo nie je jasné alebo nefunguje, opýtajte sa v komentároch alebo použite tlačidlo „Odoslať správu“, je to tam —>
Horizontálna rozbaľovacia ponuka používa sa na organizáciu navigačnej štruktúry lokality. Optimálny počet úrovní hniezdenia je jedna alebo dve. Čím menej úrovní príloh, tým ľahšie pre návštevníka stránky nájde potrebné informácie. Ako vytvoriť pravidelné horizontálne menu je podrobne popísané v.
Ako vytvoriť horizontálne rozbaľovacie menu
1. Značenie HTML a základné štýly pre rozbaľovaciu ponuku s jednou úrovňou vnorenia
Označenie HTML horizontálnej rozbaľovacej ponuky sa líši od bežnej ponuky tým, že odkazuje na požadovanú položku zoznamu
- alebo<оl> .
- V príkladoch kódu chýbajú predpony prehliadača pre vlastnosti CSS, ale samozrejme ich nájdete v zdrojových súboroch.
- Osobne používam krabicový model, kde = + + . Na jeho aktiváciu potrebujete nasledujúci kód:
- > Som skrytý! >
- > Ja tiež! >
- > Ja tiež. >
- Najprv zviditeľníme rozbaľovaciu ponuku zmenou jej nepriehľadnosti na 1.
- Ďalej zmeníme smer a farbu malej šípky.
- Ďalej zmeníme pozadie za šípkou pomocou prechodu.
- > typu="zaškrtávacie políčko" id="el-1" názov="el-1" hodnotu="Šiška"> > >
- > typu="zaškrtávacie políčko" id="el-2" názov="el-2" hodnotu="sused"> > >
- > typu="zaškrtávacie políčko" id="el-3" názov="el-3" hodnotu="T-rex"> > >
- > href="#" > trieda="používateľ ikony"> > Profil > >
- > href="#" > trieda="ikona ozubeného kolieska"> > nastavenie > >
- > href="#" > trieda="ikonu odstrániť"> > Choď von > >
- Vybraté – určené na zvýraznenie položky zoznamu. Používateľ bude môcť vybrať viac ako jednu položku, ak je nastavený atribút multiple (pozri vyššie).
- Hodnota – hodnota. Tento atribút je povinný. Webový server musí pochopiť, ktoré položky zoznamu používateľ vybral.
- Označenie. Tento atribút možno použiť na skrátenie položiek zoznamu, ktoré sú príliš dlhé. Napríklad „Milán“ sa zobrazí na obrazovke namiesto „Miláno je administratívne centrum Lombardie“ špecifikovaného v tagu voľby. Severné Taliansko“. Tento atribút sa používa aj na zoskupenie položiek v zozname.
Na umiestnenie podponuky vzhľadom na hlavnú ponuku sú deklarované nasledujúce štýly:
— pre prvok zoznamu, v ktorom je vnorený rozbaľovací zoznam: li (pozícia: relatívna;) ;
— pre rozbaľovaciu ponuku ul (pozícia: absolútna;), ako aj hodnoty vľavo a hore.
Kvôli prehľadnosti a jednoduchosti formátovania pridajte hornú ponuku triedy do hlavnej ponuky a podponuku do rozbaľovacej ponuky.
Existuje niekoľko spôsobov, ako skryť rozbaľovaciu ponuku:
1) zobrazenie: žiadne;
2) viditeľnosť: skrytá;
3) nepriehľadnosť: 0;
4) transformácia: mierkaY(0);
5) pomocou knižnice jQuery.
Metóda 1. (zobrazenie: žiadne;)
Rozbaľovacia ponuka je skrytá pomocou .submenu (zobrazenie: žiadne;) , pri umiestnení kurzora myši sa zobrazuje pomocou .topmenu li:hover .submenu (zobrazenie: blok;) .
Metóda 2. (viditeľnosť: skrytá;)
Menu je skryté pomocou .submenu (viditeľnosť: skryté;) a zobrazené pomocou .topmenu li:hover .submenu (viditeľnosť: viditeľné;) .
Metóda 3. (nepriehľadnosť: 0;)
Ponuka je skrytá pomocou .submenu (nepriehľadnosť: 0;) a zobrazená pomocou .topmenu li:hover .submenu (nepriehľadnosť: 1;) . Ak chcete zabrániť zobrazeniu ponuky, keď umiestnite kurzor myši nad oblasť, kde sa nachádza, pridajte viditeľnosť: skryté; , a keď sa vznášate, zmeňte ho na viditeľnosť: viditeľné; .
Metóda 4. (transformácia: mierkaY(0);)
Menu je skryté pomocou .submenu (transform: scaleY(0);) a zobrazené pomocou .topmenu li:hover .submenu (transform: scaleY(1);) . Keďže predvolená transformácia prvku nastáva od stredu, je potrebné pridať pre .submenu (transform-origin: 0 0;) , t.j. z ľavého horného rohu.
Metóda 5: Použitie jQuery
$(".päť li ul").hide(); // skrytie rozbaľovacej ponuky $(".five li:has(".submenu")").hover(function())( $(.five li ul").stop().fadeToggle(300) ;) /* vyberieme prvok zoznamu, ktorý obsahuje prvok s triedou .submenu a pridáme k nemu funkciu hover, ktorá zobrazí a skryje rozbaľovaciu ponuku */);2. 3D rozbaľovacia ponuka
Zaujímavé efekty možno vytvárať pomocou transformácií CSS3, napríklad tak, že sa ponuka objaví z hĺbky obrazovky.
* ( box-sizing: border-box; ) body ( margin: 0; background: radial-gradient(#BFD6E2 1px, rgba(255,255,255,0) 2px); background-size: 10px 10px; ) nav ul ( list-style : žiadne; okraj: 0; výplň: 0; ) nav a ( zobrazenie: blok; zdobenie textu: žiadne; obrys: žiadne; prechod: 0,4 s ľahkosť dovnútra; ) .topmenu ( viditeľnosť zadnej strany: skryté; pozadie : rgba(255,255,255,.8); ) .topmenu > li ( display: inline-block; position: relativní; ) .topmenu > li > a ( font-family: "Exo 2", sans-serif; height: 70px; line-height: 70px; padding: 0 30px; font-weight: bold; color: #003559; text-transform: largecase; ) .down:after ( content: "\f107"; margin-left: 8px; font-family : FontAwesome; ) .topmenu li a:hover ( farba: #E6855F; ) .submenu ( pozadie: biele; orámovanie: 2px plné #003559; pozícia: absolútna; vľavo: 0; viditeľnosť: skryté; nepriehľadnosť: 0; z-index : 5; šírka: 150px; transformácia: perspektíva(600px) otočiťX(-90 stupňov); transformácia-pôvod: 0% 0%; prechod: 0,6s easy-in-out; ) .topmenu > li:hover .submenu( viditeľnosť: viditeľné; nepriehľadnosť: 1; transformácia: perspektíva(600px) otočiťX(0deg); ) .submenu li a ( farba: #7f7f7f; font-size: 13px; line-height: 36px; padding: 0 25px; font-family: "Kurale", serif; )
3. Rozbaliteľná rozbaľovacia ponuka s logom
V tomto príklade obsahuje horná časť stránky logo a navigáciu na stránke. Logo môže byť obrázok alebo text. Rozbaľovacia ponuka sa postupne rozširuje zospodu hornej položky zoznamu pomocou funkcie transformácie CSS3.
4. Rozbalenie rozbaľovacej ponuky
Ďalší príklad rozbaľovacej ponuky. Efekt zväčšenia pri zobrazení ponuky sa realizuje zmenšením počiatočnej submenu size.(transform: scale(.8);) , po umiestnení kurzora myši sa veľkosť zväčší na.topmenu > li:hover .submenu (transform: scale(1);) .
* ( box-sizing: border-box; ) body ( margin: 0; background: url(https://html5book.ru/wp-content/uploads/2015/10/background54.png) ) nav ( background: white; ) nav ul ( štýl zoznamu: žiadny; okraj: 0; výplň: 0; ) nav a ( dekorácia textu: žiadna; obrys: žiadna; zobrazenie: blok; prechod: 0,4 s nabehnutie na výstup; ) .topmenu ( text-align: center; padding: 10px 0; ) .topmenu > li ( display: inline-block; position: relatívne; ) .topmenu > li:after ( content: ""; position: absolute; right: 0; width: 1px; výška: 12px; pozadie: #d2d2d2; horná časť: 16px; tieňový rámček: 4px -2px 0 #d2d2d2; transformácia: rotácia (30 stupňov); ) .topmenu > li:posledné dieťa:po (pozadie: žiadne; rámček -shadow: none; ) .topmenu > li > a ( padding: 12px 26px; color: #767676; text-transform: largecase; font-weight: bold; letter-spacing: 1px; font-family: "Exo 2", sans-serif; ) .topmenu li a:hover ( farba: #c0a97a; ) .submenu ( pozícia: absolútna; vľavo: 50 %; hore: 100 %; šírka: 210px; ľavý okraj: -105px; pozadie: #fafafa ; orámovanie: 1px pevné #ededed; z-index: 5; viditeľnosť: skryté; nepriehľadnosť: 0; transformovať: mierka(.8); prechod: 0,4s easy-in-out; ) .submenu li a ( padding: 10px 0; margin: 0 10px; border-bottom: 1px solid #efefef; font-size: 12px; color: #484848; font-family: "Kurale", serif; ) .topmenu > li:hover .submenu ( viditeľnosť: viditeľné; nepriehľadnosť: 1; transformácia: mierka(1); )
5. Rozbaľovacia ponuka
Horizontálne menu s minianimáciou: keď prejdete myšou na odkazy v hornom menu, zobrazí sa malý kruh, ktorý tiež sprevádza vzhľad rozbaľovacej ponuky.
@import url("https://fonts.googleapis.com/css?.jpg); poloha-pozadia: stred v strede; opakovanie-pozadia: bez opakovania; veľkosť-pozadia: obal; výška: 100vh; poloha: relatívna; ) body:before ( content: ""; pozícia: absolútna; vľavo: 0; dole: 0; výška: 100 %; šírka: 100 %; pozadie: lineárny gradient (45 stupňov, rgba(0,0,0,0) , rgba(255,255,255,.8)); ) nav ( text-align: center; padding: 40px 0 0; ) nav ul ( list-style: none; margin: 0; padding: 0; ) nav a ( text-decoration : none; display: block; color: #222; ) .topmenu > li ( display: inline-block; position: relatívne; ) .topmenu > li > a ( position: relatívne; padding: 10px 15px; font-family: " Kaushan Script", kurzíva; font-size: 1,5em; line-height: 1; letter-spacing: 3px; ) .topmenu > li > a:before ( content: ""; position: absolute; z-index: 5; zľava: 50 %; hore: 100 %; šírka: 10 px; výška: 10 px; pozadie: biela; polomer okraja: 50 %; transformácia: preložiť (-50 %, 20 px); nepriehľadnosť: 0; prechod: 0,3 s; ) .topmenu li:hover a:before ( transform: translate(-50%, 0); nepriehľadnosť: 1; ) .submenu ( pozícia: absolútna; z-index: 4; vľavo: 50 %; hore: 100 %; šírka: 150px; padding: 15px 0 15px; margin-top: 5px; background: white; border-radius: 5px; box-shadow: 0 0 30px rgba(0,0,0,.2); box-sizing: border-box; viditeľnosť: skryté; opacity: 0; transform: translate(-50%, 20px); transition: .3s ; ) .topmenu > li:hover .submenu ( viditeľnosť: viditeľné; nepriehľadnosť: 1; transform: translate(-50%, 0); ) .submenu a ( font-family: "Libre Baskerville", serif; font-size: 11px; medzera medzi písmenami: 1px; odsadenie: 5px 10px; prechod: 0,3s lineárny; ) .submenu a:hover (pozadie: #e8e8e8;)
V tomto článku vám ukážeme, ako vytvoriť krásne rozbaľovacie zoznamy bez použitia obrázkov, iba pomocou CSS. Pridáme aj nejaký kód jQuery, aby fungovali.
Skôr ako začneme, vezmite na vedomie niekoľko vecí:
*,
*: po
* :pred (
box-sizing: border-box;
}
Kde teda začneme?
Prvá otázka: čo potrebujeme na vytvorenie rozbaľovacej ponuky? Vo všeobecnosti budeme pre rozbaľovaciu ponuku používať DIV s vnorenou značkou span a neusporiadaným zoznamom:
> Som niečo ako značka! >
>
JavaScript
Potrebujeme trochu JavaScriptu, aby náš rozbaľovací zoznam fungoval podľa očakávania. Toto je útržok JS, ktorý použijeme pre všetky príklady:
//...
Obj.dd .on ("kliknutie" , funkcia (udalosť) (
vrátiť nepravdu;
}
)
;
//...
$(funkcia() (
var dd = new DropDown( $("#dd" ) );
$(document).click(function() (
//všetky rozbaľovacie ponuky
$(".wrapper-dropdown-1" ) .removeClass ( "aktívny" ) ;
}
)
;
} ) ;
Čo teda tento skript robí? Najprv prepne triedu .aktívny keď kliknete na obálku. To znamená, že ak obal nemá triedu .aktívny, potom sa pridá a ak je táto trieda už priradená, potom sa odstráni.
Po druhé, skript vytvorí predvolené správanie pre rozbaľovaciu ponuku a zatvorí ju, ak kliknete kdekoľvek inde na obrazovke.
Teraz už chápeme, ako to funguje, myslím, že je čas vytvoriť niekoľko príkladov!
Príklad 1
Začnime niečím jednoduchým: jednoduchým rozbaľovacím zoznamom pohlavia. Najprv sa pozrime na označenie:
HTML značky
Potrebujeme niekoľko vecí: obal (div s id#dd), (skrytý) rozbaľovací zoznam a „štítok“, ktorý bude obalený tagom span. Používame kotviace odkazy, pretože si myslím, že je to sémanticky správne, ale môžete použiť aj inú značku.
>CSS
Prejdime teraz k CSS. Začnime s obalom:
Rozbaľovacia ponuka (
/* veľkosť a poloha */
poloha: relatívna;
šírka: 200px;
výplň: 10px;
okraj: 0 auto;
/* farba a pozadie */
pozadie : #9bc7de ;
farba : #fff ;
obrys: žiadny;
kurzor: ukazovateľ;
/* písmo */
font-weight: bold;
}
Tak sme urobili pár vecí. Najprv nastavíme šírku zoznamu a výplň. Ďalej sme mu dali farbu a pozadie. A nakoniec nastavíme možnosti písma.
Dokončíme „štítok“ pridaním malej šípky doprava pomocou pseudoprvku.
Rozbaľovacia ponuka :po (
obsah: "" ;
šírka: 0;
výška: 0;
pozícia: absolútna;
vpravo: 16px;
horná časť: 50 %;
margin-top : -6px ;
border-width : 6px 0 6px 6px ;
okrajový štýl : pevný ;
border-color : transparent #fff ;
}
Myslím, že všetci vieme, ako vytvoriť malý trojuholník v CSS pomocou okraja. Je to samozrejme hack, ale ak to funguje naozaj dobre, prečo nie? Nie je tam nič zvláštne: malá biela šípka napravo.
Takže máme pekné malé tlačidlo, ale bez obsahu rozbaľovacieho zoznamu to nemá zmysel. Poďme sa pozrieť na náš zoznam!
Wrapper-dropdown-1 .dropdown (
/* Veľkosť a poloha */
pozícia: absolútna;
horná časť: 100 %;
vľavo: 0; /* Veľkosť */
vpravo: 0; /* Veľkosť */
/* Štýly */
pozadie : #fff ;
font-weight: normal; /* Prepíše predchádzajúci font-weight: bold; */
/* Skrytie */
nepriehľadnosť: 0;
ukazovateľ-udalosti: žiadne ;
}
Rozbaľovaciemu menu dáme absolútnu pozíciu a umiestnime ho za tlačidlo (hore: 100%;). Dajme tomu rovnakú šírku ako gombíku. A nakoniec ho skryte znížením jeho nepriehľadnosti na 0.
Teraz nastavme štýly pre prvky zoznamu:
Wrapper-dropdown-1 .dropdown li a (
displej: blok;
textová výzdoba: žiadna;
farba : #9e9e9e ;
výplň: 10px 20px;
}
/* Stav kurzora */
.wrapper-dropdown-1 .dropdown li:hover a (
pozadie : #f3f8f8 ;
}
Pomocou JavaScriptu prepneme triedu .aktívny keď klikneme na tlačidlo, na základe tejto triedy môžeme zmeniť naše CSS, aby sa zobrazil rozbaľovací zoznam.
/* Aktívny stav */
.wrapper-dropdown-1 .active .dropdown (
nepriehľadnosť: 1;
ukazovatel-udalosti: auto ;
}
Wrapper-dropdown-1 .active :after (
border-color : #9bc7de transparent ;
border-width : 6px 6px 0 6px ;
margin-top : -3px ;
}
Wrapper-dropdown-1.active(
pozadie : #9bc7de ;
pozadie : linear-gradient (doprava , #9bc7de 0 % , #9bc7de 78 % , #ffffff 78 % , #ffffff 100 % );
}
Treba poznamenať tri veci:
JavaScript
V neposlednom rade musíme pridať aj ďalší JavaScript, aby tlačidlo zobrazovalo zvolenú hodnotu.
funkcia DropDown(el) (
toto .dd = el;
tento .zástupný symbol = tento .dd .deti ( "rozpätie" ) ;
this .opts = this .dd .find ( "ul.dropdown > li" ) ;
toto .val = "" ;
tento .index = -1;
this.initEvents();
}
DropDown.prototype = (
var obj = toto ;
$(this).toggleClass("aktívne");
vrátiť nepravdu;
}
)
;
Obj.opts.on("click" , function() (
var opt = $(toto ) ;
obj.val = opt.text();
obj.index = opt.index();
obj.placeholder.text("Pohlavie: " + obj.val);
}
)
;
}
,
getValue:function()(
vrátiť tento .val ;
}
,
getIndex:function()(
vrátiť tento .index ;
}
}
Veľmi jednoduchý kód: keď sa klikne na prvok, dostaneme jeho hodnotu a zobrazíme ju v span tagu.
Príklad 2
V druhom príklade vytvoríme krásne menu na registráciu na rôznych sociálnych sieťach.
HTML značky
>Tagy sa používajú na zobrazenie malých ikon z FontAwesome. Nebudem tu vysvetľovať, čo je FontAwesome, pretože to už bolo viackrát rozoberané v predchádzajúcich článkoch. Len sa uistite, že to funguje.
CSS
Začnime obalom. Je to takmer rovnaké ako obal v predchádzajúcom príklade. Všimnite si ľavý okraj 5 pixelov.
Wrapper-dropdown-2 (
/* Veľkosť a poloha */
poloha: relatívna; /* Povoliť absolútne umiestnenie pre deti a pseudo prvky */
šírka: 200px;
okraj: 0 auto;
padding: 10px 15px;
/* Štýly */
pozadie : #fff ;
border-left : 5px plná sivá;
kurzor: ukazovateľ;
obrys: žiadny;
}
Teraz malá šípka. Presne to isté ako predtým:
Wrapper-dropdown-2 :after (
obsah: "" ;
šírka: 0;
výška: 0;
pozícia: absolútna;
vpravo: 16px;
horná časť: 50 %;
margin-top : -3px ;
border-width : 6px 6px 0 6px ;
okrajový štýl : pevný ;
farba okraja: šedá transparentná;
}
A toto je rozbaľovací zoznam. Opäť skoro to isté ako v predchádzajúcom príklade:
Wrapper-dropdown-2 .dropdown (
/* Veľkosť a poloha */
pozícia: absolútna;
horná časť: 100 %;
vľavo: -5px;
vpravo: 0px;
/* Štýly */
pozadie: biele;
štýl zoznamu: žiadny;
/* Skrytie */
nepriehľadnosť: 0;
ukazovateľ-udalosti: žiadne ;
}
Všimnite si, že použijeme prechod, aby sa rozbaľovacia ponuka rozplynula (animovala) namiesto toho, aby sa len otvorila ako v prvej ukážke.
Niektoré štýly pre odkazy a ikony:
Wrapper-dropdown-2 .dropdown li a (
displej: blok;
textová výzdoba: žiadna;
farba : #333 ;
border-left : 5px solid ;
výplň: 10px;
prechod: uvoľnenie všetkých 0,3 s;
}
Wrapper-dropdown-2 .dropdown li:nth- child(1) a (
border-left-color : #00ACED ;
}
Wrapper-dropdown-2 .dropdown li:nth- child(2) a (
border-left-color : #4183C4 ;
}
Wrapper-dropdown-2 .dropdown li:nth- child(3) a (
border-left-color : #3B5998 ;
}
Wrapper-dropdown-2 .dropdown li i (
margin-right : 5px ;
farba : zdediť ;
vertikálne zarovnať: stred;
}
/* Stav kurzora */
Wrapper-dropdown-2 .dropdown li:hover a (
farba: šedá;
}
A teraz sa poďme zaoberať štýlmi zoznamu v rozšírenom stave. Zmeňte smer šípky a rozbaľovací zoznam sa zobrazí.
Wrapper-dropdown-2 .active :after (
border-width : 0 6px 6px 6px ;
}
Wrapper-dropdown-2 .active .dropdown (
nepriehľadnosť: 1;
ukazovatel-udalosti: auto ;
}
JavaScript
funkcia DropDown(el) (
toto .dd = el;
this.initEvents();
}
DropDown.prototype = (
initEvents: function() (
var obj = toto ;
Obj.dd .on ("kliknutie" , funkcia (udalosť) (
$(this).toggleClass("aktívne");
event.stopPropagation();
}
)
;
}
}
Príklad 3
Prejdime k tretiemu príkladu, v tomto prípade vybratá položka nahradí predvolenú hodnotu.
HTML značky
>Kódu nie je oveľa viac ako predtým. Prejdime na CSS!
CSS
Wrapper-dropdown-3 (
/* Veľkosť a poloha */
poloha: relatívna;
šírka: 200px;
marža:
0
auto;
vypchávka:
10 pixelov;
/* Štýly */
pozadie:
#fff;
hraničný polomer :
7px;
hranica:
1px pevný rgba (0
,
0
,
0
,
0.15
)
;
box-shadow :
0
1px 1px rgba (50
,
50
,
50
,
0.1
)
;
kurzor:
ukazovateľ;
obrys:
žiadny;
/* Nastavenia písma */
font-weight:
tučný;
farba:
#8AA8BD;
}
Tu používame okraje, tiene polí a zaoblené rohy. Potrebujeme tiež malú šípku:
.wrapper-dropdown-3:po{
obsahu:
""
;
šírka:
0
;
výška:
0
;
pozíciu:
absolútne;
správny:
15 pixelov;
top:
50%
;
margin-top:
-3 pixely;
hraničná šírka:
6px 6px 0
6px;
border-style:
pevný;
border-color:
#8aa8bd transparentný;
}
Všetko je tu rovnaké ako predtým, takže kód nebudeme podrobne popisovať.
.wrapper-dropdown-3 .rozbaľovacia ponuka {
/* Veľkosť a poloha */
pozíciu:
absolútne;
top:
140%
;
vľavo:
0
;
správny:
0
;
/* Štýly */
pozadie:
biely;
hraničný polomer :
dediť;
hranica:
1px pevný rgba (0
,
0
,
0
,
0.17
)
;
box-shadow :
0
0
5 pixelov rgba (0
,
0
,
0
,
0.1
)
;
font-weight:
normálne;
prechod :
všetky 0,5s uvoľnenie ;
v štýle zoznamu:
žiadny;
/* Skrytie */
nepriehľadnosť :
0
;
ukazovateľ-udalosti :
žiadny;
}
.wrapper-dropdown-3 .rozbaľovacia ponuka li a {
displej:
blokovať;
vypchávka:
10 pixelov;
text-dekorácia:
žiadny;
farba:
#8aa8bd;
okraj-dole:
1px pevný #e6e8ea;
box-shadow :
vložka 0
1px 0
rgba (255
,
255
,
255
,
1
)
;
prechod :
uvoľnenie všetkých 0,3 s ;
}
.wrapper-dropdown-3 .rozbaľovacia ponuka li i {
plavák:
správny;
farba:
dediť;
}
.wrapper-dropdown-3 .rozbaľovacia ponuka li :prvého typu a {
hraničný polomer :
7px 7px 0
0
;
}
.wrapper-dropdown-3 .rozbaľovacia ponuka li :posledný typ a {
hraničný polomer :
0
0
7px 7px;
hranica:
žiadny;
}
/* Stav kurzora */
.wrapper-dropdown-3 .rozbaľovacia ponuka li :vznášať sa a {
pozadie:
#f3f8f8;
}
Všetko vyzerá skvele, až na malú šípku v pravej hornej časti rozbaľovacej ponuky. Táto šípka je dôležitá: bez nej vyzerá rozbaľovacia ponuka ako plávajúca bez akéhokoľvek spojenia s tlačidlom.
.wrapper-dropdown-3 .rozbaľovacia ponuka:po{
obsahu:
""
;
šírka:
0
;
výška:
0
;
pozíciu:
absolútne;
dno:
100%
;
správny:
15 pixelov;
hraničná šírka:
0
6px 6px 6px;
border-style:
pevný;
border-color:
#fff transparentný;
}
.wrapper-dropdown-3 .rozbaľovacia ponuka:predtým{
obsahu:
""
;
šírka:
0
;
výška:
0
;
pozíciu:
absolútne;
dno:
100%
;
správny:
13 pixelov;
hraničná šírka:
0
8px 8px 8px;
border-style:
pevný;
border-color:
rgba (0
,
0
,
0
,
0.1
)
transparentný;
}
Pre túto šípku sme použili dva pseudo prvky, pretože okolo nej chceme vytvoriť okraj.
Teraz štýly pre rozbalený stav. Všetko je rovnaké. Upozorňujeme však, že prechod sme nastavili na .rozbaľovacia ponuka trochu dlhšie ako zvyčajne (0,5 namiesto 0,3 s). Takto bude otváranie menu veľmi plynulé.
.wrapper-dropdown-3.aktívny .rozbaľovacia ponuka {
nepriehľadnosť :
1
;
ukazovateľ-udalosti :
auto;
}
JavaScript
Na dokončenie tejto ukážky musíme pridať nejaký JavaScript, ktorý nahradí predvolenú hodnotu vybraného tlačidla. Videli sme, ako sa to robí v prvom príklade, ale keďže tu nenecháme slovo „Doprava“, JS je trochu iný.
funkcia DropDown ( el )
{
toto .dd =
el ;
toto .zástupný znak =
toto .dd.deti ("rozpätie")
;
toto .opts =
toto .dd.Nájsť ("ul.dropdown >li")
;
toto .val =
""
;
toto .index =
-1
;
this.initEvents ()
;
}
Rozbaľovacia ponuka .prototyp =
{
initEvents :
funkciu ()
{
var obj =
toto ;
Obj .dd.zap ("klik",
funkciu ( udalosť )
{
$( toto )
.toggleClass ("aktívny")
;
vrátiť nepravdu ;
}
)
;
Obj .opts.zap ("klik",
funkciu ()
{
var opt =
$( toto )
;
obj .val =
opt. text()
;
obj .index =
opt.index ()
;
obj .zástupný znak.text(obj.val)
;
}
)
;
}
,
getValue :
funkciu ()
{
vrátiť toto.val ;
}
,
getIndex :
funkciu ()
{
vrátiť tento.index ;
}
}
Príklad 4
Vyzerá to inak, však? Tu vytvoríme zoznam nevyhnutných vecí, ktoré si môžete odškrtnúť a tým odškrtnúť. Celkovo nič zvláštne, ale tento príklad sa výrazne líši od predchádzajúcich ukážok.
HTML značky
trieda="rozbaľovacia ponuka">
>
Nebudú tu žiadne odkazy ani ikony. Pre každý prvok máme dve značky: začiarkavacie políčko s označením.
CSS
.wrapper-dropdown-4 {
/* Veľkosť a poloha */
pozíciu:
príbuzný;
šírka:
270 pixelov;
marža:
0
auto;
vypchávka:
10 pixelov 10 pixelov 10 pixelov 30 pixelov;
/* Štýly */
pozadie:
#fff;
hranica:
1px pevný striebro;
kurzor:
ukazovateľ;
obrys:
žiadny;
}
Ľavou výplňou vytvoríme dostatočný priestor pre červené čiary. Teraz malá šípka vpravo:
.wrapper-dropdown-4:po{
obsahu:
""
;
šírka:
0
;
výška:
0
;
pozíciu:
absolútne;
správny:
10 pixelov;
top:
50%
;
margin-top:
-3 pixely;
hraničná šírka:
6px 6px 0
6px;
border-style:
pevný;
border-color:
#ffaa9f transparentný;
}
Štýly pre rozbaľovací zoznam sú rovnaké ako v predchádzajúcich príkladoch:
.wrapper-dropdown-4 .rozbaľovacia ponuka {
/* Veľkosť a poloha */
pozíciu:
absolútne;
top:
100%
;
margin-top:
1px;
/* okraj obalu */
vľavo:
-1 pixel;
správny:
-1 pixel;
/* Štýly */
pozadie:
biely;
hranica:
1px pevný striebro;
border-top:
žiadny;
v štýle zoznamu:
žiadny;
prechod :
uvoľnenie všetkých 0,3 s ;
/* Skrytie */
nepriehľadnosť :
0
;
ukazovateľ-udalosti :
žiadny;
}
Musíme nastaviť margin-top na 1px, pretože ho musíme posunúť o kúsok nadol od okraja obalu.
.wrapper-dropdown-4 .rozbaľovacia ponuka li {
pozíciu:
príbuzný;
/* Povoliť absolútne umiestnenie pre začiarkavacie políčka */
}
.wrapper-dropdown-4 .rozbaľovacia ponuka li štítok {
displej:
blokovať;
vypchávka:
10 pixelov 10 pixelov 10 pixelov 30 pixelov;
/* Rovnaká výplň ako tlačidlo */
okraj-dole:
1px bodkovaný #1ccfcf;
prechod :
uvoľnenie všetkých 0,3 s ;
}
.wrapper-dropdown-4 .rozbaľovacia ponuka li :posledný typštítok {
hranica:
žiadny;
}
.wrapper-dropdown-4 .rozbaľovacia ponuka li vstup /* Začiarkavacie políčka */ {
pozíciu:
absolútne;
displej:
blokovať;
správny:
10 pixelov;
top:
50%
;
margin-top:
-8 pixelov;
}
/* Stav kurzora */
.wrapper-dropdown-4 .rozbaľovacia ponuka li :vznášať saštítok {
pozadie:
#f0f0f0;
}
/* Skontrolovaný stav */
.wrapper-dropdown-4 .rozbaľovacia ponuka li vstup :
skontrolovaný ~ štítok {
farba:
sivá ;
text-dekorácia:
line-through;
}
Začiarkavacie políčka sú úplne umiestnené a umiestnené v strede vpravo na každom riadku, ale keďže sú spojené s menovkami, môžete ich začiarknuť kliknutím kdekoľvek na položku.
Keď je začiarkavacie políčko začiarknuté, text sa zmení na sivý a bude prečiarknutý. Jednoduché, ale účinné.
V našom malom zápisníku máme naľavo ešte dve tenké červené čiary. Existujú dva spôsoby, ako to urobiť: jeden s pseudo prvkami a jeden s prechodmi. Pozrime sa na obe možnosti.
/* červené čiary s pseudoprvkami */
.wrapper-dropdown-4 .rozbaľovacia ponuka:predtým,
.wrapper-dropdown-4:predtým{
obsahu:
""
;
šírka:
4px;
výška:
100%
;
pozíciu:
absolútne;
top:
0
;
vľavo:
15 pixelov;
hranica:
1px pevný #ffaa9f;
border-top:
žiadny;
okraj-dole:
žiadny;
z-index:
2
;
}
/* Alebo: */
/* červené čiary používajúce prechod */
.wrapper-dropdown-4.rozbaľovacia ponuka ,
.wrapper-dropdown-4 {
pozadie:
lineárny gradient (vľavo,
biely 5%
,
#ffaa9f 5%
,
#ffaa9f 5.3%
,
biely 5.3%
,
biely 6.5%
,
#ffaa9f 6.5%
,
#ffaa9f 6.8%
,
biely 6.8%
)
;
}
.wrapper-dropdown-4 .rozbaľovacia ponuka li :vznášať saštítok {
pozadie:
lineárny gradient (vľavo,
#f0F0F0 5%
,
#ffaa9f 5%
,
#ffaa9f 5.3%
,
#f0F0F0 5.3%
,
#f0F0F0 6.5%
,
#ffaa9f 6.5%
,
#ffaa9f 6.8%
,
#f0F0F0 6.8%
)
;
}
Ktorá z týchto metód je teda lepšia? Pravdepodobne prvý, pretože ak chcete zmeniť efekt vznášania na položkách zoznamu, musíte zmeniť gradient, čo je dosť zložité. Okrem toho, pseudoprvky sú lepšie podporované prehliadačmi (od IE8), na rozdiel od prechodov (nepodporované až do IE10).
Teraz štýly pre rozbalený stav. Nie je tu nič nové.
/* Aktívny stav */
.wrapper-dropdown-4.aktívny:po{
hraničná šírka:
0
6px 6px 6px;
}
.wrapper-dropdown-4.aktívny .rozbaľovacia ponuka {
nepriehľadnosť :
1
;
ukazovateľ-udalosti :
auto;
}
JavaScript
funkciu Rozbaľovacia ponuka ( el )
{
toto.dd =
el ;
toto.opts =
toto.dd.Nájsť("ul.dropdown >li")
;
toto.val =
[
]
;
toto.index =
[
]
;
toto.initEvents()
;
}
Rozbaľovacia ponuka. prototyp =
{
initEvents :
funkciu()
{
var obj =
toto;
Obj. dd.na("klik",
funkciu( udalosť )
{
$(toto)
.toggleClass("aktívny")
;
udalosť. stopPropagation()
;
}
)
;
Obj. opts.deti("štítok")
.na("klik",
funkciu( udalosť )
{
var opt =
$(toto)
.rodič()
,
chbox =
opt. deti("vstup")
,
val =
chbox. val()
,
idx =
opt. index()
;
($.inArray( val ,
obj. val)
!==
-
1
)
?
obj. val.spájať( $.inArray( val ,
obj. val)
,
1
)
:
obj. val.TAM( val )
;
($.inArray( idx ,
obj. index)
!==
-
1
)
?
obj. index.spájať( $.inArray( idx ,
obj. index)
,
1
)
:
obj. index.TAM( idx )
;
}
)
;
}
,
getValue :
funkciu()
{
vrátiť toto.val;
}
,
getIndex :
funkciu()
{
vrátiť toto.index;
}
}
Príklad 5
Náš posledný príklad bude podobný rozbaľovacej ponuke na niektorých paneloch správcu. Na to použijeme animáciu, keď ju prepneme. Namiesto toho, aby sa objavil/zmizol, bude sa posúvať nahor a nadol.
HTML značky
trieda="rozbaľovacia ponuka">
>
CSS
.wrapper-dropdown-5 {
/* Veľkosť a poloha */
pozíciu:
príbuzný;
šírka:
200 pixelov;
marža:
0
auto;
vypchávka:
12 pixelov 15 pixelov;
/* Štýly */
pozadie:
#fff;
hraničný polomer :
5 pixelov;
box-shadow :
0
1px 0
rgba (0
,
0
,
0
,
0.2
)
;
kurzor:
ukazovateľ;
obrys:
žiadny;
prechod :
uvoľnenie všetkých 0,3 s ;
}
.wrapper-dropdown-5:po{
/* Malá šípka */
obsahu:
""
;
šírka:
0
;
výška:
0
;
pozíciu:
absolútne;
top:
50%
;
správny:
15 pixelov;
margin-top:
-3 pixely;
hraničná šírka:
6px 6px 0
6px;
border-style:
pevný;
border-color:
#4cbeff transparentný;
}
Toto sú hlavné štýly. Teraz prejdime k rozbaľovaciemu zoznamu, ktorý sa od bežného trochu líši.
.wrapper-dropdown-5 .rozbaľovacia ponuka {
/* Veľkosť a poloha */
pozíciu:
absolútne;
top:
100%
;
vľavo:
0
;
správny:
0
;
/* Štýly */
pozadie:
#fff;
hraničný polomer :
0
0
5 pixelov 5 pixelov;
hranica:
1px pevný rgba (0
,
0
,
0
,
0.2
)
;
border-top:
žiadny;
okraj-dole:
žiadny;
v štýle zoznamu:
žiadny;
prechod :
uvoľnenie všetkých 0,3 s ;
/* Skrytie */
max-výška:
0
;
pretečeniu:
skryté;
}
Tentoraz sme nezmenili krytie na 0, aby sme skryli menu. Nastavíme max-height na 0 a overflow: hidden. Prečo ste nastavili maximálnu výšku a nie výšku? Pretože nepoznáme presnú výšku rozšíreného zoznamu.
Jednoduché štýly pre prvky zoznamu.
.wrapper-dropdown-5 .rozbaľovacia ponuka li {
vypchávka:
0
10 pixelov ;
}
.wrapper-dropdown-5 .rozbaľovacia ponuka li a {
displej:
blokovať;
text-dekorácia:
žiadny;
farba:
#333
;
vypchávka:
10 pixelov 0
;
prechod :
uvoľnenie všetkých 0,3 s ;
okraj-dole:
1px pevný #e6e8ea;
}
.wrapper-dropdown-5 .rozbaľovacia ponuka li :posledný typ a {
hranica:
žiadny;
}
.wrapper-dropdown-5 .rozbaľovacia ponuka li i {
okraj-pravý:
5 pixelov;
farba:
dediť;
vertikálne zarovnať:
stred;
}
/* Stav kurzora */
.wrapper-dropdown-5 .rozbaľovacia ponuka li :vznášať sa a {
farba:
#57a9d9;
}
A teraz v aktívnom stave:
/* Aktívny stav */
.wrapper-dropdown-5.aktívny {
hraničný polomer :
5 pixelov 5 pixelov 0
0
;
pozadie:
#4cbeff;
box-shadow :
žiadny;
okraj-dole:
žiadny;
farba:
biely;
}
.wrapper-dropdown-5.aktívny:po{
border-color:
#82d1ff transparentný;
}
.wrapper-dropdown-5.aktívny .rozbaľovacia ponuka {
okraj-dole:
1px pevný rgba (0
,
0
,
0
,
0.2
)
;
max-výška:
400 pixelov;
}
Keď je rozbaľovacia ponuka otvorená, zmeníme spodné rohy tlačidla, jeho farbu, smer šípky a farbu šípky a odstránime jej tieň a okraje.
A aby sa zobrazila ponuka, nastavili sme maximálnu výšku rozbaľovacej ponuky na 400 pixelov. Mohli by sme to nastaviť na 500px alebo 1000px, na tom nezáleží.
JavaScript
funkciu Rozbaľovacia ponuka ( el )
{
toto.dd =
el ;
toto.initEvents()
;
}
Rozbaľovacia ponuka. prototyp =
{
initEvents :
funkciu()
{
var obj =
toto;
Obj. dd.na("klik",
funkciu( udalosť )
{
$(toto)
.toggleClass("aktívny")
;
udalosť. stopPropagation()
;
}
)
;
}
}
spätná kompatibilita
Takže teraz máme 5 rozbaľovacích zoznamov, ktoré fungujú skvele, ale čo staršie prehliadače?
Tieto prehliadače nerozumejú napríklad vlastnosti opacity.
Pomôže nám v tom knižnica Modernizr. Aby sme to povedali na rovinu, pre tých, ktorí nevedia, Modernizr je knižnica JavaScript, ktorá prehliadaču používateľa sprístupňuje vlastnosti podporované HTML5 a CSS3.
Vďaka tomu môžeme prehliadaču „povedať“, že *túto* vlastnosť nepodporujete, potom urobte nasledovné. Nižšie je uvedený príklad, ako môžeme spravovať štýl pre prehliadače, ktoré nepodporujú určité vlastnosti CSS:
/* Žiadna podpora CSS3 */
.bez priehľadnosti .wrapper-dropdown-1.rozbaľovacia ponuka ,
.bezvýznamné udalosti .wrapper-dropdown-1 .rozbaľovacia ponuka {
displej:
žiadny;
nepriehľadnosť :
1
;
/* Ak podporuje nepriehľadnosť, ale nepodporuje udalosti ukazovateľa */
ukazovateľ-udalosti :
auto;
/* Ak udalosti ukazovateľa podporujú, ale nepodporujú udalosti ukazovateľa */
}
.bez priehľadnosti .wrapper-dropdown-1.aktívny.rozbaľovacia ponuka ,
.bezvýznamné udalosti .wrapper-dropdown-1.aktívny .rozbaľovacia ponuka {
displej:
blokovať;
}
Ak prehliadač nepodporuje nepriehľadnosť alebo udalosti ukazovateľa, použije sa vlastnosť display: block;. A tak ďalej.
Záver.
Dúfam, že vám tento článok pomohol pochopiť, ako vytvoriť vlastné rozbaľovacie ponuky. Ako vidíte, je to celkom jednoduché.
Demonštrácia
Ak máte nejaké otázky, odporúčame vám použiť naše fórum, aby ste dostali odpoveď čo najrýchlejšie
Jednoduchý rozbaľovací zoznam v HTML sa dá ľahko vytvoriť pomocou značky select. Toto je kontajnerová značka, v ktorej sú vnorené značky možností – sú to tie, ktoré definujú prvky zoznamu.
Existuje niekoľko možností pre zoznamy, ktoré je možné vytvoriť pomocou značky select: rozbaľovací zoznam (možnosti sa zobrazia po kliknutí na hlavné pole alebo umiestnením kurzora myši naň) a zoznam s viacerými možnosťami – v ktorom môže používateľ vybrať niekoľko položiek. Prvé sú bežnejšie, sú významným prvkom navigácie na moderných stránkach. Rozbaľovací zoznam s viacerými možnosťami je možné použiť napríklad v katalógoch, kde je potrebné vybrať viacero charakteristík produktu.
Vzhľad a vlastnosti zoznamov môžete zmeniť pomocou univerzálnych a špeciálnych atribútov.
Vyberte atribúty značky
1. Viacnásobné - nastaví viacnásobný výber.
2. Veľkosť - nastavuje počet viditeľných riadkov v zozname, teda výšku. A tu všetko závisí od toho, či je viacnásobný atribút prítomný alebo nie. Ak áno a nezadáte veľkosť, potom ak je prítomných viacero, používateľ uvidí všetky možné možnosti výberu, ale ak viacero chýba, zobrazí sa iba jeden riadok a návštevník si bude môcť prečítať zvyšok, keď klikne na ikonu výťahu na pravej strane. Ak je zadaná veľkosť výšky a je menšia ako počet možností, napravo sa zobrazí posúvač.
3. Meno – meno. Rozbaľovací zoznam sa zaobíde aj bez neho, ale môže byť potrebná interakcia s obslužným programom na serveri. Meno je spravidla stále uvedené.
Značka select nemá povinné atribúty, na rozdiel od značky voľby.
Vnorené atribúty značiek možností
Čo sa týka šírky zoznamu, štandardne je nastavená na dĺžku najširšieho textu v zozname. Šírku je samozrejme možné meniť pomocou HTML štýlov.
Rozbaľovací zoznam inými spôsobmi
Dá sa to urobiť pomocou CSS, napríklad po prejdení kurzorom na prvok stránky sa zobrazí zoznam. Výborné možnosti vytvárania zoznamov poskytuje JavaScript, ktorý zjednodušuje knižnica Jquery. Rozbaľovací zoznam pripojený pomocou tejto knižnice môže byť veľmi zložitý, napríklad kaskádový. To znamená, že keď vyberiete prvok v jednom zozname, zobrazí sa nasledujúci zoznam, napríklad v ponuke je položka „Dámske oblečenie“ (keď naň umiestnite kurzor myši, potom keď vyberiete jeden z typov, napr. „Vrchné oblečenie“ “, vypadne zoznam s prvkami: bundy, parky, kabáty, krátke kabáty, kožuchy atď.
Povrchne sme vymenovali hlavné spôsoby, ktorými môžete vytvoriť rozbaľovací zoznam. V JavaScripte je samozrejme veľa nuancií, ktoré vám umožňujú zmeniť funkčnosť a vzhľad zoznamov.
Začiatočníci sa často stretávajú s problémom navrhovania rozbaľovacieho zoznamu. Rovnako ako s originálom vyberte nemôžete robiť nič špeciálne. Potom príde na rad záchrana jQuery a potom môžete robiť takmer čokoľvek.
Čo keby som vám povedal, že je možný aj štandardný? HTML Nie je zlé navrhnúť rozbaľovací zoznam čistým spôsobom CSS?
Rozbaľovací zoznam v HTML
Farbu pozadia a textu je možné zmeniť, a to veľmi jednoducho.
IN rozpätie pridali sme 2 triedy, jednu hlavnú, ktorá bude obsahovať všetky hlavné štýly “ vlastný rozbaľovací zoznam“, a druhý je veľký, ktorý určí veľkosť rozbaľovací zoznam. Vieme pripraviť povedzme 3 veľkosti vopred, veľký, stredný, malý, nastavené v štýloch veľkosť písma. A netrápte sa v budúcnosti. Môžete to preskočiť, všetko závisí od vášho dizajnu na stránke.
Text ( pozadie: #2a2a2b; farba: #fff; zarovnanie textu: stred; rodina písma: Arial, Helvetica; ) .big (veľkosť písma: 1,2em; ) /* Vlastná rozbaľovacia ponuka */ .vlastná rozbaľovacia ponuka ( pozícia : relatívny; zobrazenie: inline-block; vertical-align: middle; margin: 10px; /* iba ukážka */ ) .custom-dropdown select (kurzor:ukazovateľ; farba pozadia: #2980b9; farba: #fff; font- veľkosť: inherit; padding: 0,5 em; padding-right: 2,5 em; border: 0; margin: 0; border-radius: 3px; text-indent: 0,01px; text-overflow: ""; -webkit-vzhľad: tlačidlo ; /* skryť predvolenú šípku v chrome OSX */ ) .custom-dropdown::before, .custom-dropdown::after ( content: ""; position: absolute; pointer-events: none; ) .custom-dropdown:: after ( /* Vlastná šípka rozbaľovacej ponuky */ obsah: "\25BC"; výška: 1 em; veľkosť písma: 0,625 em; výška riadku: 1; vpravo: 1,2 em; hore: 50 %; okraj hore: -,5 em ; ) .custom-dropdown::before ( /* Vlastná rozbaľovacia šípka kryt */ šírka: 2em; vpravo: 0; hore: 0; dole: 0; border-radius: 0 3px 3px 0; ) .custom-dropdown select ( farba: rgba(0,0,0,.3); ) .custom-dropdown select::after ( color: rgba(0,0,0,.1); ) .custom-dropdown::before ( background-color: rgba(0,0,0,.15); ) .custom-dropdown::after ( farba: rgba(0,0,0,.4); )
Ak sa nechcete obťažovať a študovať štýly, jednoducho ho pridajte na svoju stránku a zmeňte farbu tak, aby zodpovedala dizajnu vašej stránky. Potom ste vo veľkom štýle“ .vlastný rozbaľovací výber“musíte zmeniť hodnoty farba pozadia A farba