Tworzymy stylowe listy rozwijane. Wybieranie z listy rozwijanej na liście rozwijanej HTML po najechaniu kursorem css
Dziś chcę przedstawić mały „przepis” na utworzenie listy w CSS. Żadnego JQuery, żadnego CSS3 - po prostu stary, dobry CSS dla różnych przeglądarek. Przykład jest dość prosty, więc doświadczeni towarzysze mogą nie być zainteresowani. Wdrożymy listę rozwijaną z przyciskami społecznościowymi.
Więc nie rozmawiajmy długo, przejdźmy od razu do rzeczy
HTML
Podziel się tym postem
- Świergot
- Google Plus
- W kontakcie z
- RSS
Celowo pomijam kwestie ogólne, takie jak dołączanie stylów, aby kod się nie rozrastał. Na dole strony podam link do źródeł - jest tam wszystko.
W HTML mamy zwykłą listę i nietypowy nagłówek. Jego niezwykłość polega na tym, że jest on wykonany za pomocą hiperłącza, co pozwala na śledzenie zdarzenia :unosić się czyli wskazówki. Lista rozwijana będzie działać po najechaniu kursorem na tytuł.
CSS
Najpierw przyjrzyjmy się podstawowym stylom listy rozwijanej. Próbowałem skomentować każdą linię kodu, aby było jaśniej:
/*Zresetuj dopełnienie*/ .droplink ul,.droplink h3,.droplink h3 a( padding:0;margin:0 ) /*Podstawowe opakowanie*/ .droplink ( szerokość:200px; pozycja:absolutna; margines:10px 0 0 25px ) /*Styl bloku aktywowanego*/ .droplink:hover( wysokość:auto; kolor tła:#3E403D; border:solid 1px #3A3C39 ) /*Tytuł w normalnym stanie*/ .droplink h3 a(text-align:center ; szerokość: 100%; wyświetlacz: blok; dopełnienie: 12 pikseli 0 pikseli; kolor: # 999; dekoracja tekstu: brak ) .droplink h3 a img(border: brak) /*Styl tytułu po najechaniu*/ .droplink:hover h3 a ( kolor: #FFF; grubość czcionki: pogrubiona; pozycja: bezwzględna)
Nie ma tu nic specjalnego, wskazaliśmy rozmiar i styl bloku, styl nagłówka, a dla obu elementów ich styl po najechaniu kursorem. Zacząć robić:
/*Ukryj listę bez najechania*/ .droplink ul( list-style:none; display:none ) /*Wyświetl listę po najechaniu myszką*/ .droplink:hover ul( display:block; margines-top:40px ) .droplink li(wyświetlanie:blok)
Ten kod jest bardziej interesujący i pokazuje, jak się zachowuje Lista rozwijana podczas najechania kursorem. W normalnym stanie to kosztuje Nie wyświetla się, to znaczy, że nie jest wyświetlany. Po najechaniu kursorem pokazujemy go jako blok. Oto cała tajemnica. Teraz udekorujmy trochę elementy listy i wstawmy ikony:
/*Styl elementu listy*/ .droplink li a( dopełnienie: 5px 12px 4px 34px; margines:1px; kolor tła:#484A47; wyświetlacz:blok; kolor:#FFF; dekoracja-tekstu: brak; rozmiar czcionki:12px ; powtórzenie tła: brak powtórzeń; pozycja tła: 10 pikseli 3 piksele ) /*Styl najechania elementem*/ .droplink li a:hover( kolor tła:#999 ) /*Ikony*/ .facebook a (obraz tła: url("icons/facebook.png")) .twitter a (obraz tła:url("icons/twitter.png")) .vk a (obraz tła:url("icons/vk.png")) . rss a (obraz tła:url("icons/rss.png")) .gplus a (obraz tła:url("icons/gplus.png"))
Właściwie to wszystko. Lista rozwijana jest gotowa i wygląda całkiem nieźle. Możesz zaprojektować elementy według własnego uznania, dodać zaokrąglone rogi i inne bajery.
Jeśli chcesz, aby po najechaniu kursorem lista „nakładała się” na tekst znajdujący się pod nią, spójrz w bok indeks Z.
Jeśli coś jest niejasne lub nie działa, zapytaj w komentarzach lub użyj przycisku „Wyślij wiadomość”, wszystko tam jest —>
Poziome menu rozwijane służy do organizowania struktury nawigacji witryny. Optymalna liczba poziomów zagnieżdżenia to jeden lub dwa. Im mniej poziomów załączników, tym łatwiej odwiedzającemu witrynę znaleźć potrzebne informacje. Sposób tworzenia zwykłego poziomego menu opisano szczegółowo w.
Jak zrobić poziome menu rozwijane
1. Znaczniki HTML i podstawowe style menu rozwijanego z jednym poziomem zagnieżdżenia
Znacznik HTML poziomego menu rozwijanego różni się od zwykłego menu tym, że prowadzi do żądanego elementu listy
- Lub<оl> .
- W przykładach kodu brakuje przedrostków przeglądarki dla właściwości CSS, ale można je oczywiście znaleźć w plikach źródłowych.
- Osobiście używam modelu pudełkowego, gdzie = + + . Aby go aktywować, potrzebujesz następującego fragmentu kodu:
- > Jestem ukryty! >
- > Ja też! >
- > Ja też. >
- Najpierw sprawiamy, że lista rozwijana staje się widoczna, zmieniając jej krycie na 1.
- Następnie zmieniamy kierunek i kolor małej strzałki.
- Następnie zmienimy tło za strzałką za pomocą gradientu.
- > typ="pole wyboru" ID=„el-1” nazwa=„el-1” wartość="pączek"> > >
- > typ="pole wyboru" ID=„el-2” nazwa=„el-2” wartość="sąsiad"> > >
- > typ="pole wyboru" ID=„el-3” nazwa=„el-3” wartość=„T-rex”> > >
- > href="#" > klasa=„użytkownik ikony”> > Profil > >
- > href="#" > klasa=„ikona-tryb”> > Ustawienia > >
- > href="#" > klasa=„usuń ikonę”> > Wychodzić > >
- Wybrane — przeznaczone do wyróżniania elementu listy. Użytkownik będzie mógł wybrać więcej niż jeden element, jeśli ustawiony jest atrybut wielokrotny (patrz wyżej).
- Wartość - wartość. Ten atrybut jest wymagany. Serwer WWW musi zrozumieć, które elementy listy wybrał użytkownik.
- Etykieta. Tego atrybutu można użyć do skrócenia zbyt długich elementów listy. Na przykład na ekranie zostanie wyświetlony komunikat „Mediolan” zamiast „Mediolan jest centrum administracyjnym Lombardii” określonym w znaczniku opcji. Północne Włochy". Ten atrybut służy również do grupowania elementów na liście.
Aby ustawić podmenu względem menu głównego, deklarowane są następujące style:
— dla elementu listy, w którym zagnieżdżona jest lista rozwijana: li (pozycja: względna;) ;
— dla menu rozwijanego ul (pozycja: absolutna;) , a także wartości lewej i górnej.
Dla przejrzystości i łatwości formatowania dodajmy górne menu klasy do menu głównego i podmenu do menu rozwijanego.
Istnieje kilka sposobów ukrycia menu rozwijanego:
1) wyświetlacz: brak;
2) widoczność: ukryta;
3) nieprzezroczystość: 0;
4) transformacja: skalaY(0);
5) korzystając z biblioteki jQuery.
Metoda 1. (wyświetlanie: brak;)
Menu rozwijane jest ukryte za pomocą .submenu (display: none;) , po najechaniu myszką jest wyświetlane za pomocą .topmenu li:hover .submenu (display: block;) .
Metoda 2. (widoczność: ukryta;)
Menu jest ukryte za pomocą .submenu (widoczność: ukryte;) , a pokazane za pomocą .topmenu li:hover .submenu (widoczność: widoczne;).
Metoda 3. (krycie: 0;)
Menu jest ukryte za pomocą .submenu (opacity: 0;) i pokazane za pomocą .topmenu li:hover .submenu (opacity: 1;) . Aby menu nie pojawiało się po najechaniu myszką na obszar, w którym się znajduje, dodaj widoczność: ukryta; , a po najechaniu zmień na widoczność: widoczny; .
Metoda 4. (przekształcenie: skalaY(0);)
Menu jest ukryte za pomocą .submenu (transformacja: skalaY(0);) i pokazane za pomocą .topmenu li:hover .submenu (transformacja: skalaY(1);). Ponieważ domyślna transformacja elementu następuje od środka, należy dodać for .submenu (transform-origin: 0 0;) , tj. z lewego górnego rogu.
Metoda 5: Korzystanie z jQuery
$(".pięć li ul").hide(); // ukryj menu rozwijane $(.five li:has(.submenu")).hover(function())( $(.five li ul").stop().fadeToggle(300) ;) /* wybierz element listy zawierający element z klasą .submenu i dodaj do niego funkcję najechania kursorem, która pokaże i ukryje menu rozwijane */);2. Rozwijane menu 3D
Ciekawe efekty można stworzyć stosując przekształcenia CSS3, np. wyświetlenie menu z głębi ekranu.
* ( rozmiar pudełka: obramowanie; ) treść ( margines: 0; tło: gradient promieniowy (#BFD6E2 1px, rgba(255,255,255,0) 2px); rozmiar tła: 10px 10px; ) nav ul (styl listy : brak; margines: 0; dopełnienie: 0; ) nav a (wyświetlanie: blok; dekoracja tekstu: brak; kontur: brak; przejście: .4s wysuwanie; ) .topmenu ( widoczność tylnej powierzchni: ukryta; tło : rgba(255,255,255,.8); ) .topmenu > li (wyświetlanie: blok inline; pozycja: względna; ) .topmenu > li > a (rodzina czcionek: „Exo 2”, bezszeryfowa; wysokość: 70 pikseli; wysokość linii: 70 pikseli; dopełnienie: 0 30 pikseli; grubość czcionki: pogrubiona; kolor: #003559; transformacja tekstu: wielkie litery; ) .down:after ( treść: "\f107"; margines po lewej stronie: 8 pikseli; rodzina czcionek : FontAwesome; ) .topmenu li a:hover ( kolor: #E6855F; ) .submenu ( tło: biały; obramowanie: 2px stałe #003559; pozycja: bezwzględna; lewa: 0; widoczność: ukryta; krycie: 0; indeks Z : 5; szerokość: 150px; transformacja: perspektywa(600px) obrótX(-90deg); pochodzenie transformacji: 0% 0%; przejście: wydłużenie .6 s; ) .topmenu > li:hover .submenu( widoczność: widoczny; nieprzezroczystość: 1; transformacja: perspektywa (600px) obrótX(0 stopni); ) .submenu li a ( kolor: #7f7f7f; rozmiar czcionki: 13px; wysokość linii: 36px; dopełnienie: 0 25px; rodzina czcionek: "Kurale", serif; )
3. Rozwijane menu rozwijane z logo
W tym przykładzie górna część strony zawiera logo i nawigację witryny. Logo może mieć postać obrazu lub tekstu. Menu rozwijane stopniowo rozwija się spod najwyższego elementu listy przy użyciu funkcji transformacji CSS3.
4. Rozwijane menu rozwijane
Inny przykład menu rozwijanego. Efekt powiększenia po pojawieniu się menu realizowany jest poprzez zmniejszenie początkowego rozmiaru.submenu (transformacja: skala(.8);) , po najechaniu kursorem rozmiar zwiększa się do.topmenu > li:hover .submenu (transformacja: skala(1);) .
* ( box-sizing: border-box; ) body ( margines: 0; tło: url(https://html5book.ru/wp-content/uploads/2015/10/background54.png) ) nav ( tło: biały; ) nav ul ( styl listy: brak; margines: 0; dopełnienie: 0; ) nav a ( dekoracja tekstu: brak; konspekt: brak; wyświetlanie: blok; przejście: .4s ułatwienie wyjścia; ) .topmenu ( text-align: center; padding: 10px 0; ) .topmenu > li ( display: inline-block; pozycja: względna; ) .topmenu > li:after ( treść: ""; pozycja: bezwzględna; prawa: 0; szerokość: 1px; wysokość: 12px; tło: #d2d2d2; góra: 16px; box-shadow: 4px -2px 0 #d2d2d2; transformacja: obrót(30deg); ) .topmenu > li:last-child:after ( tło: brak; pudełko -shadow: brak; ) .topmenu > li > a ( dopełnienie: 12px 26px; kolor: #767676; transformacja tekstu: wielkie litery; grubość czcionki: pogrubiona; odstępy między literami: 1px; rodzina czcionek: "Exo 2", bezszeryfowy; ) .topmenu li a:hover ( kolor: #c0a97a; ) .submenu ( pozycja: bezwzględna; lewa: 50%; górna: 100%; szerokość: 210px; lewy margines: -105px; tło: #fafafa ; obramowanie: 1px solidna #ededed; indeks Z: 5; widoczność: ukryta; nieprzezroczystość: 0; transformacja: skala(.8); przejście: 0,4 s swobodnego wejścia; ) .submenu li a ( dopełnienie: 10px 0; margines: 0 10px; obramowanie-dół: 1px solid #efefef; rozmiar czcionki: 12px; kolor: #484848; rodzina czcionek: "Kurale", serif; ) .topmenu > li:hover .submenu ( widoczność: widoczna; krycie: 1; transformacja: skala(1); )
5. Wysuwane menu rozwijane
Menu poziome z minianimacją: po najechaniu kursorem na linki górnego menu pojawia się małe kółko, które towarzyszy również pojawieniu się menu rozwijanego.
@import url("https://fonts.googleapis.com/css?.jpg); pozycja tła: środek w środku; powtórzenie tła: brak powtórzeń; rozmiar tła: okładka; wysokość: 100vh; pozycja: względna; ) body:before (treść: ""; pozycja: absolutna; lewa: 0; dół: 0; wysokość: 100%; szerokość: 100%; tło: gradient liniowy (45 stopni, rgba (0,0,0,0) , rgba(255,255,255,.8)); ) nav ( wyrównanie tekstu: środek; dopełnienie: 40px 0 0; ) nav ul ( styl listy: brak; margines: 0; dopełnienie: 0; ) nav a ( dekoracja tekstu : brak; wyświetlacz: blok; kolor: #222; ) .topmenu > li ( wyświetlacz: blok inline; pozycja: względna; ) .topmenu > li > a ( pozycja: względna; dopełnienie: 10px 15px; rodzina czcionek: " Kaushan Script", kursywa; rozmiar czcionki: 1,5 em; wysokość linii: 1; odstęp między literami: 3 piksele; ) .topmenu > li > a:before ( treść: ""; pozycja: bezwzględna; indeks Z: 5; po lewej: 50%; góra: 100%; szerokość: 10 pikseli; wysokość: 10 pikseli; tło: biały; promień obramowania: 50%; transformacja: tłumaczenie (-50%, 20 pikseli); krycie: 0; przejście: .3 s; ) .topmenu li:najedź a:przed ( transformacja: tłumacz(-50%, 0); nieprzezroczystość: 1; ) .submenu ( pozycja: bezwzględna; indeks Z: 4; lewa: 50%; góra: 100%; szerokość: 150px; dopełnienie: 15px 0 15px; górny margines: 5px; tło: biały; promień obramowania: 5px; box-shadow: 0 0 30px rgba(0,0,0,.2); rozmiar pudełka: border-box; widoczność: ukryta; krycie: 0; transformacja: tłumaczenie (-50%, 20px); przejście: .3s ; ) .topmenu > li:hover .submenu ( widoczność: widoczna; krycie: 1; transformacja: tłumaczenie(-50%, 0); ) .submenu a ( rodzina czcionek: „Libre Baskerville”, serif; rozmiar czcionki: 11px; odstęp między literami: 1px; dopełnienie: 5px 10px; przejście: liniowe .3s; ) .submenu a:hover (tło: #e8e8e8;)
W tym artykule pokażemy, jak stworzyć piękne listy rozwijane bez użycia obrazów, a jedynie za pomocą CSS. Dodamy także kod jQuery, aby działały.
Zanim zaczniemy, zwróć uwagę na kilka rzeczy:
*,
* :Po
* :zanim (
rozmiar pudełka: border-box;
}
Wiec gdzie zaczynamy?
Pierwsze pytanie: czego potrzebujemy, aby utworzyć menu rozwijane? Ogólnie rzecz biorąc, będziemy używać DIV z zagnieżdżonym znacznikiem span i nieuporządkowaną listą w menu rozwijanym:
> Jestem trochę etykietą! >
>
JavaScript
Potrzebujemy trochę JavaScript, aby nasza lista rozwijana działała zgodnie z oczekiwaniami. To jest fragment kodu JS, którego będziemy używać we wszystkich przykładach:
//...
Obj.dd .on („kliknij” , funkcja (zdarzenie) (
zwróć fałsz;
}
)
;
//...
$(funkcja() (
var dd = nowe DropDown( $("#dd" ) ) ;
$(dokument).click(funkcja() (
//wszystkie listy rozwijane
$(.wrapper-dropdown-1") .removeClass( "aktywny" );
}
)
;
} ) ;
Co więc robi ten skrypt? Po pierwsze, zmienia klasę .aktywny po kliknięciu opakowania. Oznacza to, że jeśli opakowanie nie ma klasy .aktywny, to jest dodawana, a jeśli ta klasa jest już przypisana, to zostaje usunięta.
Po drugie, skrypt tworzy domyślne zachowanie listy rozwijanej, zamykając ją, jeśli klikniesz gdziekolwiek indziej na ekranie.
Cóż, teraz rozumiemy, jak to działa, myślę, że czas stworzyć kilka przykładów!
Przykład 1
Zacznijmy od czegoś prostego: prostego menu rozwijanego dotyczącego płci. Przyjrzyjmy się najpierw znacznikom:
znaczniki HTML
Potrzebujemy kilku rzeczy: opakowania (div z id#dd), (ukrytego) menu rozwijanego i „etykiety”, która będzie owinięta znacznikiem span. Używamy linków kotwicznych, ponieważ uważam, że jest to poprawne semantycznie, ale możesz też użyć innego tagu.
>CSS
Przejdźmy teraz do CSS. Zacznijmy od opakowania:
Lista rozwijana opakowania (
/* rozmiar i położenie */
pozycja: względna;
szerokość: 200px;
dopełnienie: 10px;
margines: 0 auto;
/* kolor i tło */
tło: #9bc7de;
kolor: #fff;
zarys: brak;
kursor: wskaźnik;
/* czcionka */
grubość czcionki: pogrubiona;
}
Zrobiliśmy więc kilka rzeczy. Najpierw ustawiamy szerokość listy i trochę dopełnienia. Następnie nadaliśmy mu kolor i tło. Na koniec ustawiamy opcje czcionek.
Zakończmy „etykietę”, dodając małą strzałkę w prawo za pomocą pseudoelementu.
Lista rozwijana opakowania :po (
treść : "" ;
szerokość: 0;
wysokość: 0;
pozycja: absolutna;
po prawej: 16 pikseli;
góra: 50%;
górny margines: -6px;
szerokość obramowania: 6px 0 6px 6px;
styl obramowania: solidny;
kolor obramowania: przezroczysty #fff;
}
Myślę, że wszyscy wiemy, jak utworzyć mały trójkąt w CSS za pomocą obramowania. To oczywiście hack, ale jeśli działa naprawdę dobrze, dlaczego nie? Nie ma tam nic specjalnego: mała biała strzałka po prawej stronie.
Mamy więc fajny mały przycisk, ale bez rozwijanej zawartości nie ma to sensu. Rzućmy okiem na naszą listę!
Lista rozwijana opakowania-1 .dropdown (
/* Rozmiar i położenie */
pozycja: absolutna;
Top 100%;
po lewej: 0; /* Rozmiar */
po prawej: 0; /* Rozmiar */
/* Style */
tło: #fff;
waga czcionki: normalna; /* Zastępuje poprzednią grubość czcionki: pogrubienie; */
/* Ukrywanie */
nieprzezroczystość: 0 ;
zdarzenia wskaźnikowe: brak;
}
Nadajemy menu rozwijanemu pozycję absolutną i umieszczamy go za przyciskiem (na górze: 100%;). Nadajmy mu taką samą szerokość jak dla przycisku. Na koniec ukryj go, zmniejszając jego krycie do 0.
Teraz ustawmy style dla elementów listy:
Wrapper-dropdown-1 .dropdown li a (
Blok wyświetlacza;
dekoracja tekstu: brak;
kolor: #9e9e9e;
dopełnienie: 10px 20px;
}
/* Stan najechania */
.wrapper-dropdown-1 .dropdown li:hover a (
tło: #f3f8f8;
}
Za pomocą JavaScript zmienimy klasę .aktywny kiedy klikniemy przycisk, w oparciu o tę klasę możemy zmienić nasz CSS, aby wyświetlić listę rozwijaną.
/* Stan aktywny */
.wrapper-dropdown-1 .active .dropdown (
nieprzezroczystość: 1 ;
zdarzenia wskaźnikowe: auto ;
}
Wrapper-dropdown-1 .active :po (
kolor obramowania: #9bc7de przezroczysty;
szerokość obramowania: 6px 6px 0 6px;
górny margines: -3px;
}
Lista rozwijana opakowania-1.active(
tło: #9bc7de;
tło: gradient liniowy (do prawej, #9bc7de 0%, #9bc7de 78%, #ffffff 78%, #ffffff 100%);
}
Warto zwrócić uwagę na trzy rzeczy:
JavaScript
Na koniec musimy jeszcze dodać kolejny fragment kodu JavaScript, aby przycisk wyświetlał wybraną wartość.
funkcja DropDown(el) (
to .dd = el;
ten .placeholder = this .dd .children („rozpiętość” );
this .opts = this .dd .find („ul.dropdown > li” );
to .val = "" ;
ten .indeks = - 1;
this.initEvents();
}
DropDown.prototype = (
var obj = to;
$(this).toggleClass("aktywny");
zwróć fałsz;
}
)
;
Obj.opts.on("kliknij" , funkcja() (
var opt = $(to) ;
obj.val = opt.text();
obj.index = opt.index();
obj.placeholder.text("Płeć: " + obj.val);
}
)
;
}
,
getValue:funkcja()(
zwróć to.val;
}
,
getIndex:funkcja()(
zwróć ten .index;
}
}
Bardzo prosty kod: po kliknięciu elementu pobieramy jego wartość i wyświetlamy ją w znaczniku span.
Przykład 2
W drugim przykładzie stworzymy piękne menu do rejestracji w różnych sieciach społecznościowych.
znaczniki HTML
>Tagi służą do wyświetlania małych ikon z FontAwesome. Nie będę tutaj wyjaśniał, czym jest FontAwesome, ponieważ było to już omawiane nie raz w poprzednich artykułach. Tylko upewnij się, że to działa.
CSS
Zacznijmy od opakowania. Jest prawie taki sam jak opakowanie w poprzednim przykładzie. Zwróć uwagę na lewą ramkę o wielkości 5 pikseli.
Lista rozwijana opakowania-2 (
/* Rozmiar i położenie */
pozycja: względna; /* Włącz pozycjonowanie bezwzględne dla dzieci i pseudoelementów */
szerokość: 200px;
margines: 0 auto;
dopełnienie: 10px 15px;
/* Style */
tło: #fff;
obramowanie po lewej stronie: jednolity szary 5 pikseli;
kursor: wskaźnik;
zarys: brak;
}
Teraz mała strzałka. Dokładnie tak samo jak poprzednio:
Lista rozwijana opakowania-2:po (
treść : "" ;
szerokość: 0;
wysokość: 0;
pozycja: absolutna;
po prawej: 16 pikseli;
góra: 50%;
górny margines: -3px;
szerokość obramowania: 6px 6px 0 6px;
styl obramowania: solidny;
kolor obramowania: szary przezroczysty;
}
A to jest lista rozwijana. Ponownie, prawie tak samo jak w poprzednim przykładzie:
Lista rozwijana opakowania-2 .dropdown (
/* Rozmiar i położenie */
pozycja: absolutna;
Top 100%;
po lewej: -5px;
po prawej: 0 pikseli;
/* Style */
tło: białe;
styl listy: brak;
/* Ukrywanie */
nieprzezroczystość: 0 ;
zdarzenia wskaźnikowe: brak;
}
Zauważ, że użyjemy przejścia, aby menu rozwijane zanikło (animowało), a nie po prostu otwierało się, jak w pierwszym demo.
Niektóre style łączy i ikon:
Wrapper-dropdown-2 .dropdown li a (
Blok wyświetlacza;
dekoracja tekstu: brak;
kolor: #333;
obramowanie po lewej stronie: 5px solid;
dopełnienie: 10px;
przejście: zwolnienie wszystkich 0,3 s;
}
Wrapper-dropdown-2 .dropdown li:nth-child(1 ) a (
kolor obramowania po lewej stronie: #00ACED;
}
Wrapper-dropdown-2 .dropdown li:nth-child(2 ) a (
kolor obramowania po lewej stronie: #4183C4 ;
}
Wrapper-dropdown-2 .dropdown li:nth-child(3 ) a (
kolor-lewego obramowania: #3B5998 ;
}
Wrapper-dropdown-2 .dropdown li i (
margines prawy: 5px;
kolor: dziedziczy;
wyrównanie w pionie: środek;
}
/* Stan najechania */
Wrapper-dropdown-2 .dropdown li:hover a (
kolor: szary;
}
A teraz zajmijmy się stylami listy w stanie rozwiniętym. Zmień kierunek strzałki, a lista rozwijana stanie się widoczna.
Wrapper-dropdown-2 .active :po (
szerokość obramowania: 0 6px 6px 6px;
}
Lista rozwijana opakowania-2 .aktywna lista rozwijana (
nieprzezroczystość: 1 ;
zdarzenia wskaźnikowe: auto ;
}
JavaScript
funkcja DropDown(el) (
to .dd = el;
this.initEvents();
}
DropDown.prototype = (
initEvents: funkcja() (
var obj = to;
Obj.dd .on („kliknij” , funkcja (zdarzenie) (
$(this).toggleClass("aktywny");
wydarzenie.stopPropagation();
}
)
;
}
}
Przykład 3
Przejdźmy do trzeciego przykładu, w tym przypadku wybrana pozycja zastąpi wartość domyślną.
znaczniki HTML
>Nie ma dużo więcej kodu niż wcześniej. Przejdźmy do CSS!
CSS
Lista rozwijana opakowania-3 (
/* Rozmiar i położenie */
pozycja: względna;
szerokość: 200px;
margines:
0
automatyczny;
wyściółka:
10 pikseli;
/* Style */
tło:
#fff;
promień granicy :
7 pikseli;
granica:
1 px solidny RGB (0
,
0
,
0
,
0.15
)
;
pudełko-cień :
0
1 px 1 px RGB (50
,
50
,
50
,
0.1
)
;
kursor:
wskaźnik;
zarys:
nic;
/* Ustawienia czcionki */
grubość czcionki:
pogrubiony;
kolor:
#8AA8BD;
}
Tutaj używamy obramowań, cieni pudełkowych i zaokrąglonych rogów. Potrzebujemy również małej strzałki:
.wrapper-dropdown-3:Po{
treść:
""
;
szerokość:
0
;
wysokość:
0
;
pozycja:
absolutny;
Prawidłowy:
15 pikseli;
szczyt:
50%
;
górny margines:
-3 piks;
szerokość granicy:
6 pikseli 6 pikseli 0
6 pikseli;
styl graniczny:
solidny;
kolor ramki:
#8aa8bd przezroczysty;
}
Wszystko tutaj jest takie samo jak wcześniej, więc nie będziemy szczegółowo opisywać kodu.
.wrapper-dropdown-3 .upuścić {
/* Rozmiar i położenie */
pozycja:
absolutny;
szczyt:
140%
;
lewy:
0
;
Prawidłowy:
0
;
/* Style */
tło:
biały;
promień granicy :
dziedziczyć;
granica:
1 px solidny RGB (0
,
0
,
0
,
0.17
)
;
pudełko-cień :
0
0
5 pikseli RGB (0
,
0
,
0
,
0.1
)
;
grubość czcionki:
normalna;
przemiana :
wszystkie 0,5 s rozluźnienia ;
w stylu listy:
nic;
/* Ukrywanie */
nieprzezroczystość :
0
;
zdarzenia wskaźnikowe :
nic;
}
.wrapper-dropdown-3 .upuścić Li a {
wyświetlacz:
blok;
wyściółka:
10 pikseli;
dekoracja tekstowa:
nic;
kolor:
#8aa8bd;
granica-dół:
1 px solidny #e6e8ea;
pudełko-cień :
wstawka 0
1 px 0
RGB (255
,
255
,
255
,
1
)
;
przemiana :
wszystkie 0,3 s odprężenia ;
}
.wrapper-dropdown-3 .upuścić Li ja {
platforma:
Prawidłowy;
kolor:
dziedziczyć;
}
.wrapper-dropdown-3 .upuścić li :pierwszy w swoim rodzaju A {
promień granicy :
7 pikseli 7 pikseli 0
0
;
}
.wrapper-dropdown-3 .upuścić li :ostatni typ A {
promień granicy :
0
0
7 pikseli 7 pikseli;
granica:
nic;
}
/* Stan najechania */
.wrapper-dropdown-3 .upuścić li :unosić się A {
tło:
#f3f8f8;
}
Wszystko wygląda świetnie, z wyjątkiem małej strzałki w prawym górnym rogu listy rozwijanej. Ta strzałka jest ważna: bez niej lista rozwijana wygląda tak, jakby unosiła się w powietrzu i nie była połączona z przyciskiem.
.wrapper-dropdown-3 .upuścić:Po{
treść:
""
;
szerokość:
0
;
wysokość:
0
;
pozycja:
absolutny;
spód:
100%
;
Prawidłowy:
15 pikseli;
szerokość granicy:
0
6 pikseli 6 pikseli 6 pikseli;
styl graniczny:
solidny;
kolor ramki:
#fff przezroczysty;
}
.wrapper-dropdown-3 .upuścić:zanim{
treść:
""
;
szerokość:
0
;
wysokość:
0
;
pozycja:
absolutny;
spód:
100%
;
Prawidłowy:
13 pikseli;
szerokość granicy:
0
8 pikseli 8 pikseli 8 pikseli;
styl graniczny:
solidny;
kolor ramki:
RGB (0
,
0
,
0
,
0.1
)
przezroczysty;
}
Użyliśmy dwóch pseudoelementów dla tej strzałki, ponieważ chcemy utworzyć wokół niej obramowanie.
Teraz style dla stanu rozwiniętego. Wszystko jest takie samo. Należy jednak pamiętać, że ustawiliśmy przejście na .upuścić nieco dłużej niż zwykle (0,5 zamiast 0,3 s). Dzięki temu otwieranie menu będzie bardzo płynne.
.wrapper-dropdown-3.aktywny .upuścić {
nieprzezroczystość :
1
;
zdarzenia wskaźnikowe :
automatyczny;
}
JavaScript
Aby ukończyć to demo, musimy dodać JavaScript, który zastąpi domyślną wartość wybranego przycisku. Widzieliśmy, jak to się robi w pierwszym przykładzie, ale ponieważ nie zostawiamy tutaj słowa „Transport”, JS jest trochę inny.
funkcja DropDown ( el )
{
Ten .dd =
el ;
Ten .zastępczy =
Ten .dd.dzieci ("Zakres")
;
Ten .opc =
Ten .dd.znajdować ("ul.dropdown >li")
;
Ten .val =
""
;
Ten .indeks =
-1
;
this.initEvents ()
;
}
Upuścić .prototyp =
{
initEvents :
funkcjonować ()
{
var obj =
Ten ;
Obj .dd.NA ("Kliknij",
funkcjonować ( wydarzenie )
{
$( Ten )
.toggleClass ("aktywny")
;
zwróć fałsz ;
}
)
;
Obj .opc.NA ("Kliknij",
funkcjonować ()
{
var opcja =
$( Ten )
;
obj .val =
optować. tekst()
;
obj .indeks =
indeks.opcji ()
;
obj .zastępczy.tekst(obj.val)
;
}
)
;
}
,
uzyskaćWartość :
funkcjonować ()
{
zwróć to.val ;
}
,
pobierzIndeks :
funkcjonować ()
{
zwróć ten.indeks ;
}
}
Przykład 4
Wygląda inaczej, prawda? Tutaj stworzymy listę rzeczy do zrobienia, które możesz zaznaczyć i tym samym skreślić. Ogólnie nic specjalnego, ale ten przykład znacznie różni się od poprzednich dem.
znaczniki HTML
klasa="upuścić">
>
Nie będzie tutaj żadnych linków ani ikon. Dla każdego elementu mamy dwa znaczniki: pole wyboru z etykietą.
CSS
.wrapper-dropdown-4 {
/* Rozmiar i położenie */
pozycja:
względny;
szerokość:
270 pikseli;
margines:
0
automatyczny;
wyściółka:
10 pikseli 10 pikseli 10 pikseli 30 pikseli;
/* Style */
tło:
#fff;
granica:
1 px solidny srebro;
kursor:
wskaźnik;
zarys:
nic;
}
Używamy lewego dopełnienia, aby stworzyć wystarczająco dużo miejsca na czerwone linie. Teraz mała strzałka po prawej stronie:
.wrapper-dropdown-4:Po{
treść:
""
;
szerokość:
0
;
wysokość:
0
;
pozycja:
absolutny;
Prawidłowy:
10 pikseli;
szczyt:
50%
;
górny margines:
-3 piks;
szerokość granicy:
6 pikseli 6 pikseli 0
6 pikseli;
styl graniczny:
solidny;
kolor ramki:
#ffaa9f przezroczysty;
}
Style listy rozwijanej są takie same jak w poprzednich przykładach:
.wrapper-dropdown-4 .upuścić {
/* Rozmiar i położenie */
pozycja:
absolutny;
szczyt:
100%
;
górny margines:
1 px;
/* granica opakowania */
lewy:
-1px;
Prawidłowy:
-1px;
/* Style */
tło:
biały;
granica:
1 px solidny srebro;
górna granica:
nic;
w stylu listy:
nic;
przemiana :
wszystkie 0,3 s odprężenia ;
/* Ukrywanie */
nieprzezroczystość :
0
;
zdarzenia wskaźnikowe :
nic;
}
Musimy ustawić margines górny na 1px, ponieważ musimy przesunąć go nieco w dół od krawędzi opakowania.
.wrapper-dropdown-4 .upuścić li {
pozycja:
względny;
/* Włącz pozycjonowanie bezwzględne dla pól wyboru */
}
.wrapper-dropdown-4 .upuścić etykieta {
wyświetlacz:
blok;
wyściółka:
10 pikseli 10 pikseli 10 pikseli 30 pikseli;
/* Takie samo wypełnienie jak przycisk */
granica-dół:
1 px kropkowany #1ccfcf;
przemiana :
wszystkie 0,3 s odprężenia ;
}
.wrapper-dropdown-4 .upuścić li :ostatni typ etykieta {
granica:
nic;
}
.wrapper-dropdown-4 .upuścić wejście /* Pola wyboru */ {
pozycja:
absolutny;
wyświetlacz:
blok;
Prawidłowy:
10 pikseli;
szczyt:
50%
;
górny margines:
-8px;
}
/* Stan najechania */
.wrapper-dropdown-4 .upuścić li :unosić się etykieta {
tło:
#f0f0f0;
}
/* Sprawdzony stan */
.wrapper-dropdown-4 .upuścić wejście :
zaznaczone ~ etykieta {
kolor:
szary ;
dekoracja tekstowa:
linia przez;
}
Pola wyboru są rozmieszczone bezwzględnie i umieszczone pośrodku, po prawej stronie każdej linii, ale ponieważ są powiązane z etykietami, możesz kliknąć w dowolnym miejscu elementu, aby je sprawdzić.
Po zaznaczeniu pola wyboru tekst staje się szary i przekreślony. Proste ale efektywne.
W naszym małym notatniku po lewej stronie mamy jeszcze dwie cienkie czerwone linie. Można to zrobić na dwa sposoby: jeden z pseudoelementami i drugi z gradientami. Przyjrzyjmy się obu opcjom.
/* czerwone linie z pseudoelementami */
.wrapper-dropdown-4 .upuścić:zanim,
.wrapper-dropdown-4:zanim{
treść:
""
;
szerokość:
4 piks;
wysokość:
100%
;
pozycja:
absolutny;
szczyt:
0
;
lewy:
15 pikseli;
granica:
1 px solidny #ffaa9f;
górna granica:
nic;
granica-dół:
nic;
indeks Z:
2
;
}
/* Lub: */
/* czerwone linie wykorzystujące gradient */
.wrapper-dropdown-4.upuścić ,
.wrapper-dropdown-4 {
tło:
gradient liniowy (lewy,
biały 5%
,
#ffaa9f 5%
,
#ffaa9f 5.3%
,
biały 5.3%
,
biały 6.5%
,
#ffaa9f 6.5%
,
#ffaa9f 6.8%
,
biały 6.8%
)
;
}
.wrapper-dropdown-4 .upuścić li :unosić się etykieta {
tło:
gradient liniowy (lewy,
#f0F0F0 5%
,
#ffaa9f 5%
,
#ffaa9f 5.3%
,
#f0F0F0 5.3%
,
#f0F0F0 6.5%
,
#ffaa9f 6.5%
,
#ffaa9f 6.8%
,
#f0F0F0 6.8%
)
;
}
Która z tych metod jest zatem lepsza? Prawdopodobnie to pierwsze, ponieważ jeśli chcesz zmienić efekt najechania kursorem na elementy listy, musisz zmienić gradient, co jest dość trudne. Ponadto pseudoelementy są lepiej obsługiwane przez przeglądarki (począwszy od IE8), w przeciwieństwie do gradientów (obsługiwane dopiero w IE10).
Teraz style dla stanu rozwiniętego. Nie ma tu nic nowego.
/* Stan aktywny */
.wrapper-dropdown-4.aktywny:Po{
szerokość granicy:
0
6 pikseli 6 pikseli 6 pikseli;
}
.wrapper-dropdown-4.aktywny .upuścić {
nieprzezroczystość :
1
;
zdarzenia wskaźnikowe :
automatyczny;
}
JavaScript
funkcjonować Upuścić ( el )
{
Ten.dd =
el ;
Ten.decyduje się =
Ten.dd.znajdować("ul.dropdown >li")
;
Ten.wal =
[
]
;
Ten.indeks =
[
]
;
Ten.initEvents()
;
}
Upuścić. prototyp =
{
initEvents :
funkcjonować()
{
odm obj =
Ten;
Obj. dd.NA("Kliknij",
funkcjonować( wydarzenie )
{
$(Ten)
.przełącz klasę("aktywny")
;
wydarzenie. zatrzymaj propagację()
;
}
)
;
Obj. decyduje się.dzieci("etykieta")
.NA("Kliknij",
funkcjonować( wydarzenie )
{
odm optować =
$(Ten)
.rodzic()
,
chbox =
optować. dzieci("wejście")
,
wal =
chbox. wal()
,
idx =
optować. indeks()
;
($.w tablicy( wal ,
obj. wal)
!==
-
1
)
?
obj. wal.splatać( $.w tablicy( wal ,
obj. wal)
,
1
)
:
obj. wal.naciskać( wal )
;
($.w tablicy( idx ,
obj. indeks)
!==
-
1
)
?
obj. indeks.splatać( $.w tablicy( idx ,
obj. indeks)
,
1
)
:
obj. indeks.naciskać( idx )
;
}
)
;
}
,
uzyskaćWartość :
funkcjonować()
{
powrót Ten.wal;
}
,
pobierzIndeks :
funkcjonować()
{
powrót Ten.indeks;
}
}
Przykład 5
Nasz końcowy przykład będzie podobny do rozwijanego menu w niektórych panelach administracyjnych. Aby to zrobić, użyjemy animacji po jej przełączeniu. Zamiast pojawiać się/znikać, będzie się przesuwał w górę i w dół.
znaczniki HTML
klasa="upuścić">
>
CSS
.wrapper-dropdown-5 {
/* Rozmiar i położenie */
pozycja:
względny;
szerokość:
200 pikseli;
margines:
0
automatyczny;
wyściółka:
12 pikseli 15 pikseli;
/* Style */
tło:
#fff;
promień granicy :
5 pikseli;
pudełko-cień :
0
1 px 0
RGB (0
,
0
,
0
,
0.2
)
;
kursor:
wskaźnik;
zarys:
nic;
przemiana :
wszystkie 0,3 s odprężenia ;
}
.wrapper-dropdown-5:Po{
/* Mała strzałka */
treść:
""
;
szerokość:
0
;
wysokość:
0
;
pozycja:
absolutny;
szczyt:
50%
;
Prawidłowy:
15 pikseli;
górny margines:
-3 piks;
szerokość granicy:
6 pikseli 6 pikseli 0
6 pikseli;
styl graniczny:
solidny;
kolor ramki:
#4cbeff przezroczysty;
}
To są główne style. Przejdźmy teraz do listy rozwijanej, która nieco różni się od zwykłej.
.wrapper-dropdown-5 .upuścić {
/* Rozmiar i położenie */
pozycja:
absolutny;
szczyt:
100%
;
lewy:
0
;
Prawidłowy:
0
;
/* Style */
tło:
#fff;
promień granicy :
0
0
5 pikseli 5 pikseli;
granica:
1 px solidny RGB (0
,
0
,
0
,
0.2
)
;
górna granica:
nic;
granica-dół:
nic;
w stylu listy:
nic;
przemiana :
wszystkie 0,3 s odprężenia ;
/* Ukrywanie */
maksymalna wysokość:
0
;
przelewowy:
ukryty;
}
Tym razem nie zmieniliśmy krycia na 0, aby ukryć menu. Ustawiamy maksymalną wysokość na 0 i przepełnienie: ukryte. Dlaczego ustawiłeś maksymalną wysokość, a nie wysokość? Ponieważ nie znamy dokładnej wysokości rozwiniętej listy.
Proste style elementów listy.
.wrapper-dropdown-5 .upuścić li {
wyściółka:
0
10 pikseli ;
}
.wrapper-dropdown-5 .upuścić Li a {
wyświetlacz:
blok;
dekoracja tekstowa:
nic;
kolor:
#333
;
wyściółka:
10 pikseli 0
;
przemiana :
wszystkie 0,3 s odprężenia ;
granica-dół:
1 px solidny #e6e8ea;
}
.wrapper-dropdown-5 .upuścić li :ostatni typ A {
granica:
nic;
}
.wrapper-dropdown-5 .upuścić Li ja {
prawy margines:
5 pikseli;
kolor:
dziedziczyć;
wyrównanie w pionie:
środek;
}
/* Stan najechania */
.wrapper-dropdown-5 .upuścić li :unosić się A {
kolor:
#57a9d9;
}
A teraz w stanie aktywnym:
/* Stan aktywny */
.wrapper-dropdown-5.aktywny {
promień granicy :
5 pikseli 5 pikseli 0
0
;
tło:
#4cbeff;
pudełko-cień :
nic;
granica-dół:
nic;
kolor:
biały;
}
.wrapper-dropdown-5.aktywny:Po{
kolor ramki:
#82d1ff przezroczysty;
}
.wrapper-dropdown-5.aktywny .upuścić {
granica-dół:
1 px solidny RGB (0
,
0
,
0
,
0.2
)
;
maksymalna wysokość:
400 pikseli;
}
Gdy menu rozwijane jest otwarte, zmieniamy dolne rogi przycisku, jego kolor, kierunek strzałki i kolor strzałki oraz usuwamy jego cień i obramowania.
Aby wyświetlić menu, ustawiliśmy maksymalną wysokość menu rozwijanego na 400 pikseli. Moglibyśmy ustawić go na 500 pikseli lub 1000 pikseli, to nie ma znaczenia.
JavaScript
funkcjonować Upuścić ( el )
{
Ten.dd =
el ;
Ten.initEvents()
;
}
Upuścić. prototyp =
{
initEvents :
funkcjonować()
{
odm obj =
Ten;
Obj. dd.NA("Kliknij",
funkcjonować( wydarzenie )
{
$(Ten)
.przełącz klasę("aktywny")
;
wydarzenie. zatrzymaj propagację()
;
}
)
;
}
}
Kompatybilność wsteczna
Mamy więc 5 rozwijanych menu, które działają świetnie, ale co ze starszymi przeglądarkami?
Te przeglądarki nie rozumieją na przykład właściwości opacity.
Pomoże nam w tym biblioteka Modernizr. Mówiąc wprost, dla tych, którzy nie wiedzą, Modernizr to biblioteka JavaScript, która udostępnia przeglądarce użytkownika właściwości obsługiwane przez HTML5 i CSS3.
Dzięki temu możemy „powiedzieć” przeglądarce, że jeśli nie wspierasz *tej* właściwości, to wykonaj poniższe czynności. Poniżej znajduje się przykład tego, jak możemy zarządzać stylami w przeglądarkach, które nie obsługują niektórych właściwości CSS:
/* Brak obsługi CSS3 */
.brak krycia .wrapper-dropdown-1.upuścić ,
.no-pointerevents .wrapper-dropdown-1 .upuścić {
wyświetlacz:
nic;
nieprzezroczystość :
1
;
/* Jeśli obsługuje przezroczystość, ale nie obsługuje zdarzeń wskaźników */
zdarzenia wskaźnikowe :
automatyczny;
/* Jeśli obsługuje zdarzenia wskaźników, ale nie obsługuje zdarzeń wskaźników */
}
.brak krycia .wrapper-dropdown-1.aktywny.upuścić ,
.no-pointerevents .wrapper-dropdown-1.aktywny .upuścić {
wyświetlacz:
blok;
}
Jeśli przeglądarka nie obsługuje zdarzeń opacity lub pointer-event, wówczas używana jest właściwość display: block;. I tak dalej.
Wniosek.
Mam nadzieję, że ten artykuł pomógł Ci zrozumieć, jak tworzyć niestandardowe menu rozwijane. Jak widać, jest to całkiem proste.
Demonstracja
Jeśli masz jakieś pytania, zalecamy skorzystanie z naszego forum, aby otrzymać odpowiedź tak szybko, jak to możliwe
Prostą listę rozwijaną w formacie HTML można łatwo utworzyć za pomocą znacznika wyboru. Jest to znacznik kontenera, w którym zagnieżdżone są znaczniki opcji, które definiują elementy listy.
Istnieje kilka opcji tworzenia list za pomocą znacznika wyboru: lista rozwijana (opcje pojawiają się po kliknięciu na pole główne lub najechanie na nie kursorem) oraz lista wielokrotnego wyboru - w której użytkownik może wybrać kilka pozycji. Te pierwsze są bardziej powszechne i stanowią istotny element nawigacji współczesnych witryn. Listę rozwijaną wielokrotnego wyboru można zastosować np. w katalogach, w których trzeba wybrać kilka cech produktu.
Możesz zmienić wygląd i właściwości list za pomocą atrybutów uniwersalnych i specjalnych.
Wybierz atrybuty tagu
1. Wiele – ustawia wielokrotny wybór.
2. Rozmiar - ustawia ilość widocznych linii na liście, czyli wysokość. I tutaj wszystko zależy od tego, czy atrybut wielokrotny jest obecny, czy nie. Jeśli tak i nie określisz rozmiaru, to jeśli jest ich wiele, użytkownik zobaczy wszystkie możliwe opcje wyboru, ale jeśli nie ma wielu, wyświetli się tylko jedna linia, a odwiedzający będzie mógł przeczytać resztę, gdy klika ikonę windy po prawej stronie. Jeśli określono wysokość wysokości i jest ona mniejsza niż liczba opcji, po prawej stronie pojawi się pasek przewijania.
3. Imię - imię. Lista rozwijana może się bez tego obejść, ale może być konieczna interakcja z programem obsługi na serwerze. Z reguły nazwa jest nadal wskazana.
Znacznik wyboru nie ma wymaganych atrybutów, w przeciwieństwie do znacznika opcji.
Zagnieżdżone atrybuty znacznika opcji
Jeśli chodzi o szerokość listy, jest ona domyślnie ustawiona na długość najszerszego tekstu na liście. Oczywiście szerokość można zmienić za pomocą stylów HTML.
Lista rozwijana w inny sposób
Można to zrobić za pomocą CSS, np. lista wyświetli się po najechaniu myszką na element strony. Doskonałe możliwości tworzenia list zapewnia JavaScript, który upraszcza biblioteka Jquery. Lista rozwijana połączona za pomocą tej biblioteki może być bardzo złożona, na przykład kaskadowa. Oznacza to, że po wybraniu elementu na jednej liście pojawia się następująca lista, na przykład znajduje się pozycja menu „Odzież damska” (po najechaniu na nią kursorem, a następnie wybraniu jednego z typów, na przykład „Odzież wierzchnia ”, wyskakuje lista z elementami: kurtki, parki, płaszcze, krótkie płaszcze, futra itp.
Pobieżnie wymieniliśmy główne sposoby tworzenia listy rozwijanej. Oczywiście w JavaScript istnieje mnóstwo niuansów, które pozwalają na zmianę funkcjonalności i wyglądu list.
Często początkujący stają przed problemem zaprojektowania listy rozwijanej. Podobnie jak w przypadku oryginału wybierać nie możesz zrobić nic specjalnego. Wtedy przychodzi na ratunek jQuery, a wtedy możesz zrobić prawie wszystko.
A co jeśli powiem Ci, że standardowy też jest możliwy? HTML Nie jest źle zaprojektować listę rozwijaną w przejrzysty sposób CSS?
Lista rozwijana w formacie HTML
Kolor tła i tekstu można zmienić, a odbywa się to w bardzo prosty sposób.
W Zakres dodaliśmy 2 klasy, jedną główną, która będzie zawierać wszystkie główne style „ menu rozwijane niestandardowe„, a drugi jest duży, co określi rozmiar Lista rozwijana. Możemy przygotować z wyprzedzeniem powiedzmy 3 rozmiary, duży, średni, mały, ustawione w stylach rozmiar czcionki. I nie zawracaj sobie tym głowy w przyszłości. Możesz to pominąć, wszystko zależy od projektu na stronie.
Treść (tło: #2a2a2b; kolor: #fff; wyrównanie tekstu: do środka; rodzina czcionek: Arial, Helvetica; ) .big (rozmiar czcionki: 1,2em; ) /* Niestandardowe menu rozwijane */ .custom-dropdown ( pozycja : względny; wyświetlacz: blok inline; wyrównanie do pionu: środek; margines: 10 pikseli; /* tylko wersja demonstracyjna */ ) .custom-dropdown wybierz (kursor:wskaźnik; kolor tła: #2980b9; kolor: #fff; czcionka- rozmiar: dziedziczenie; dopełnienie: .5em; dopełnienie po prawej stronie: 2,5em; obramowanie: 0; margines: 0; promień obramowania: 3px; wcięcie tekstu: 0,01px; przepełnienie tekstu: „”; -wygląd-webkit: przycisk ; /* ukryj domyślną strzałkę w Chrome OSX */ ) .custom-dropdown::before, .custom-dropdown::after ( treść: ""; pozycja: bezwzględna; wskaźnik-zdarzenia: brak; ) .custom-dropdown:: after ( /* Niestandardowa strzałka rozwijana */ treść: "\25BC"; wysokość: 1em; rozmiar czcionki: .625em; wysokość linii: 1; prawa: 1.2em; góra: 50%; górny margines: -.5em ; ) .custom-dropdown::before ( /* Niestandardowa osłona strzałki rozwijanej */ szerokość: 2em; prawa: 0; góra: 0; dół: 0; promień obramowania: 0 3px 3px 0; ) .custom-dropdown wybierz ( kolor: rgba(0,0,0,.3); ) .custom-dropdown wybierz::after ( color: rgba(0,0,0,.1); ) .custom-dropdown::before ( kolor tła: rgba(0,0,0,.15); ) .custom-dropdown::after ( kolor: rgba(0,0,0,.4); )
Jeśli nie chcesz zawracać sobie głowy studiowaniem stylów, po prostu dodaj go do swojej witryny i zmień kolor, aby pasował do projektu Twojej witryny. W takim razie jesteś po prostu w dobrym stylu” .custom-dropdown wybierz” musisz zmienić wartości kolor tła I kolor