Okna.  Wirusy.  Laptopy.  Internet.  Biuro.  Narzędzia.  Kierowcy

Od dawna chciałem napisać artykuł o tym, jak to zrobić podmenu w CSS. Wiele osób to robi JQuery i całkiem nieźle wychodzi jednak cała podstawowa zasada stworzenia podmenu w CSS Podam to tutaj. A następnie, zaczynając od tej bazy, możesz dalej ulepszać podmenu.

Zaraz to przyniosę Kod CSS:

* html ulli (
pływak: w lewo;
}
* html ulli a (
wysokość: 1%;
}
ul (
obramowanie na dole: 1px bryła #000;
styl listy: brak;
margines: 0;
dopełnienie: 0;
szerokość: 100px;
}
ulli (
pozycja: względna;
}
ulli a (
wyświetlacz: blok;
obramowanie: 1px stała #000;
obramowanie na dole: 1px;
dopełnienie: 5px;
dekoracja tekstu: brak;
}
Li ul (
wyświetlacz: brak;
po lewej: 99px;
pozycja: absolutna;
góra: 0;
}
li:najedź ul (
wyświetlacz: blok;
}

Najważniejszą rzeczą jest tutaj selektor” li:hover ul". W rzeczywistości pokazuje zawartość menu. Domyślnie " wyświetlacz: brak", a kiedy najedziesz kursorem na element menu, podmenu stanie się: " wyświetlacz: blok", czyli widoczne. To jest najważniejsze. Również w dwóch pierwszych selektorach (które z * ) nadchodzi Włamanie do CSS Dla TJ., w przeciwnym razie bez niego nic nie będzie działać w tej przeglądarce. Cała reszta to wygląd, który oczywiście można zmienić.

Przynoszę i Kod HTML:



  • Dom


  • Menu 1


    • Podmenu 1


    • Podmenu 2


    • Podmenu 3




  • Menu 2


    • Podmenu 4


    • Podmenu 5


    • Podmenu 6


    • Podmenu7


    • Podmenu 8




Jeśli dokładnie przemyślisz tę strukturę, wszystko stanie się bardzo jasne. Etykietka ul- tworzy menu. Jeśli ul jest w innym ul, to jest to już podmenu. Znacznik li odpowiada za konkretną pozycję menu.

Oczywiście menu jest najprostsze, zarówno pod względem logiki i struktury, jak i pod względem designu. Oczywiście, że możesz skorzystać JQuery wykonaj gładkie otwarcie. Możesz także zmienić projekt, ale cała zasada pozostanie taka sama jak w tym podmenu napisane w CSS i HTML.

Zrealizujmy nasz pomysł używając najzwyklejszego CSS. W następnym artykule, jeśli pamiętam, opiszę ten sam efekt za pomocą jQuery. Ale na razie zacznijmy analizować tę metodę. Ale najpierw sugeruję przyjrzenie się temu, co dzieje się na końcu:

Przede wszystkim napiszmy HTML nasz kod menu. Menu będzie proste. Na przykład będzie zawierał 2 elementy, z których każdy będzie miał listę rozwijaną z podelementami.

Myślę, że tutaj wszystko jest jasne, najprostsze 2-poziomowe menu. Jak powiedziałem, menu składa się z dwóch głównych pozycji, w razie potrzeby możesz dodać tyle, ile chcesz. Następnie wystarczy dodać style, które zrobią całą magię :)

#slow_nav > ul(szerokość: 500 pikseli; margines: 25 pikseli auto 0; ) #slow_nav > ul > li(styl listy: brak; wyświetlacz: blok inline; pozycja: względna; dopełnienie: 0; ) #slow_nav a(text- dekoracja: brak;) #slow_nav > ul > li > a(rozmiar czcionki: 18 pikseli; dopełnienie: 5 pikseli; kolor tła: #333; kolor: #fff; ) #slow_nav li ul( pozycja: bezwzględna; styl listy: brak; text-align: center: rozmiar czcionki: 15 pikseli; margines: 0; /* Te linie są potrzebne do poprawnego działania animacji */ max-height:Hidden; -webkit-transition:max-height 0,4s linear; ; -moz-przejście: maksymalna wysokość 0,4 s liniowa; /* koniec */ ) #slow_nav ul( maksymalna wysokość: 300px; ) #slow_nav li ul li( kolor tła: #333; brzeg-dół: bryła 1px # 888; ) #slow_nav li ul li:last-child( border-bottom:none; ) #slow_nav li ul li a ( padding:5px 12px; color:#fff; display:block; ) #slow_nav li ul li:hover( kolor tła:#444; ) #slow_nav li ul li:pierwsze-dziecko(górny margines:25px; pozycja: względna; ) #slow_nav li ul li:first-child:before(treść:""; pozycja:absolutna; szerokość:1px; wysokość:1px; border:5px solid transparent; border-bottom-color:#333; left:10px; top :-10px)

Kod CSS nie jest mały, ale nie jest z natury skomplikowany. Jeśli masz umiejętności układania układu, możesz łatwo dowiedzieć się, co i jak. Zwrócę tylko uwagę na kilka ważnych punktów.

Pierwszą rzeczą jest sama animacja. Wymagany kod jest podświetlony w komentarzach w kodzie - /* Te linie są potrzebne do poprawnego działania animacji */. Nie możesz usunąć z, w przeciwnym razie animacja przestanie działać. W tym fragmencie kodu początkowo ustawiamy wysokość na zero pikseli -

maksymalna wysokość: 0px; i ustaw właściwość przepełnienie:ukryte; aby ukryć nasze menu potomne, czyli menu rozwijane. Następnie konfigurujemy właściwość obejmującą różne przeglądarki przemiana, który wykona animację.

Przejście Webkit: maksymalna wysokość 0,4 s, liniowa; -moz-przejście: maksymalna wysokość 0,4 s liniowa; przejście: maksymalna wysokość 0,4 s liniowa;

Tutaj możesz zmienić jedynie czas animacji. Czas jest obecnie ustawiony na 0,4 sekundy. Zaraz po ustawieniu animacji dodana została właściwość umożliwiająca ustawienie nowej wysokości po najechaniu kursorem na pozycje menu głównego:

#slow_nav li:hover ul(maksymalna wysokość:300px;)

Oto zdjęcie. Wysokość jest ustawiona na stałe maksimum. Jeśli wysokość menu rozwijanego jest większa, zmień wartość na większą. W przeciwnym razie wysokość menu zostanie zmniejszona do 300 pikseli.

Metodę tę można zastosować nie tylko do samodzielnie napisanych menu, ale także do tych samych dynamicznych menu, które są tworzone na przykład przez systemy zarządzania treścią WordPressa. Aby to zrobić, musisz trochę zmodyfikować style i to wszystko. Oznacza to, że nie musisz używać pierwszego kodu HTML, a jedynie style. W stylach musisz zastąpić nazwę ID #slow_nav tym, co masz i być może poprawić inne drobne rzeczy. Nie będę wchodził w szczegóły. Każdy przypadek wymaga indywidualnego podejścia, więc przepraszam :) Podałem pomysł i metodę, a Ty decydujesz, czy ją zastosujesz, czy nie.

To wszystko, dziękuję za uwagę. 🙂

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

  • dodanie zagnieżdżonej listy
  • UDZIAŁ: