Создание примера выпадающего меню с помощью CSS :focus-within

В сегодняшнем примере мы создадим выпадающее меню на чистом CSS, используя псевдокласс :focus-within .

Вы можете увидеть в видео ниже рабочий пример:

Как работает псевдоселектор CSS :focus-within

:focus-within выбирает элемент, если этот элемент содержит дочерние элементы, находящиеся в фокусе.

Он связан с псевдоклассом :focus , просто он сработает, если будет выбрано что-то, что содержится в этом элементе.

В отличие от :focus , который применяется непосредственно к самому элементу, правила :focus-within применяются к родительскому элементу, на который наведен фокус.

Создание выпадающего меню CSS с помощью :focus-within

Чтобы создать меню, мы начнем с базовой структуры HTML, подобной приведенной ниже:

 

☰ Выпадающее меню

<дел> 💼 Услуги 💰 Бизнес

Добавим немного CSS, чтобы сделать меню первоначальным:

 . menu-container {
    дисплей: встроенный гибкий;
    flex-направление: строка;
    граница: сплошная 2px #000000;
    курсор: указатель;
}
.меню {
    положение: родственник;
    прокладка: 0rem 0.5rem;
}
.меню > .меню-контент {
    дисплей: нет;
} 

На данный момент у нас будет показано только меню, но без рабочего выпадающего списка:

Причина, по которой нам нужно использовать tabindex="0" , заключается в том, что меню можно будет выбрать, когда пользователь перемещается. с клавиатурой.

Чтобы добавить раскрывающийся список, добавятся дополнительные правила, основанные на псевдоклассе

:focus-within :

 .menu > .menu-content {
    дисплей: нет;
    положение: абсолютное;
    граница: сплошная 2px #000000;
}
.menu: focus-within > .menu-content {
    дисплей: гибкий;
    flex-направление: столбец;
}
.меню {
    набивка: 0,5 бэр;
    отображение: встроенный блок;
    цвет: #000000;
} 

На этом этапе, если мы нажмем на меню, мы увидим, что раскрывающийся список работает.

Если бы у нас было всего .menu:focus > .menu-content раскрывающееся меню закрывалось бы при навигации по элементам из этого раскрывающегося списка. Поэтому необходимо использовать

:focus-within .

Ознакомьтесь с полным рабочим кодом здесь.

Добавление вложенных выпадающих меню

Одна приятная особенность этого подхода заключается в том, что мы можем просто включить HTML для подменю:

 

☰ Выпадающее меню

<дел> 💼 Услуги 💰 Бизнес

📚 Меню книг

<дел> 📕 Красный 📗 Зеленый

И это будет работать, как и ожидалось:

Ознакомьтесь с полным рабочим кодом здесь, а также здесь вы можете увидеть еще один пример того, как мы можем использовать фокус внутри с формами.

Браузер поддерживает :focus-within

В целом, браузер отлично поддерживает псевдокласс :focus-within , поэтому у нас не должно быть проблем с совместимостью.

Надеюсь, вам понравилась эта статья, и если вы хотите получать больше статей о React и разработке внешнего интерфейса, вы всегда можете подписаться на мою рассылку.

Подписка на рассылку:

15+ Выпадающее меню CSS (демонстрация с кодом)

РЕКЛАМА

2 ноября 2022 г.

Телеграмма Группа Присоединяйтесь сейчас

РЕКЛАМА

Добро пожаловать в Codewithrandom с новым блогом, сегодня мы увидим более 15 раскрывающихся меню CSS с использованием HTML, CSS и JavaScript.

РЕКЛАМА

РЕКЛАМА

Давайте сначала разберемся, что такое раскрывающиеся меню. 

В CSS раскрывающиеся меню используются для сокрытия определенного списка внутри кнопки. Чтобы сделать кнопку, нужен свой класс div, а еще один div требуется для разграничения списка ее содержимого.

РЕКЛАМА

Теперь мы увидим более 15 выпадающих меню CSS для более ясного понимания этой концепции.

РЕКЛАМА

 

1. Раскрывающееся меню на чистом CSS

Код по- Сатиш Кумар
Демонстрация и загрузка Нажмите здесь для получения кода
Используемый язык HTML, CSS(SCSS)
Внешние ссылки\ Зависимости
Ответный Да

Этот код представляет выпадающее меню с использованием HTML и SCSS.

РЕКЛАМА

2. Нажмите раскрывающееся меню CSS

Код- Амли
Демонстрация и загрузка Нажмите здесь для получения кода
Используемый язык HTML(мопс), SCSS
Внешние ссылки\ Зависимости Да
Ответный Да

Этот код представляет собой очень креативное выпадающее меню, в основном с использованием CSS.

3. Меню #CodePenChallenge

РЕКЛАМА

Код- Ахмед Наср
Демонстрация и загрузка Нажмите здесь для получения кода
Используемый язык HTML, SCSS
Внешние ссылки\ Зависимости Да
Ответственный Да

Этот код представляет уникальное раскрывающееся меню с использованием HTML и SCSS.

РЕКЛАМА

4. Простое выпадающее меню на чистом CSS

Код — Коннор Брассингтон
Демонстрация и загрузка Нажмите здесь для получения кода
Используемый язык HTML, SCSS
Внешние ссылки\зависимости Да
Ответный Да

Этот код представляет выпадающее меню с использованием HTML и SCSS.

5. Главное меню #CodePenChallenge

Код- Мохамед Айман
Демонстрация и загрузка Нажмите здесь для получения кода
Используемый язык HTML, SCSS
Внешние ссылки\ Зависимости
Ответный Да

Этот код представляет выпадающее меню с использованием HTML и SCSS.

Более 100 проектов JavaScript с исходным кодом (от начинающих до продвинутых)0131 Код по-

Винсент Дюран Демонстрация и загрузка Нажмите здесь для получения кода Используемый язык HTML, SCSS Внешние ссылки\ Зависимости Да Ответный Да

Этот код представляет выпадающее меню с использованием HTML и SCSS.

РЕКЛАМА

7.

Расплавленное меню

РЕКЛАМА

Код- Зеландия
Демонстрация и загрузка Нажмите здесь для получения кода
Используемый язык HTML, CSS
Внешние ссылки\ Зависимости
Ответный Да

Этот код представляет собой очень креативное выпадающее меню с использованием HTML и CSS.

РЕКЛАМА

8. Адаптивное меню навигации Pure CSS

Code by- Дженнинг
Демонстрация и загрузка Нажмите здесь для получения кода
Используемый язык HTML, Sass
Внешние ссылки\ Зависимости
Ответственный Да

Этот код представляет выпадающее меню с использованием HTML и SCSS.

9. Концепция выпадающего меню Zigzag

Код- Каталин Розу
Демонстрация и загрузка Нажмите здесь для получения кода
Используемый язык HTML, CSS
Внешние ссылки\ Зависимости Да
Ответный Да

Этот код представляет собой зигзагообразное выпадающее меню с использованием HTML и CSS.

10. Выпадающие меню

Код по- Кевин
Демонстрация и загрузка Нажмите здесь для получения кода
Используемый язык HTML, SCSS
Внешние ссылки\ Зависимости Да
Ответный Да

Этот код представляет выпадающее меню с использованием HTML и SCSS.

10+ проектов Javascript для начинающих с исходным кодом

11.

Меню — градиентное меню
Код — Халида Астатин
Демонстрация и загрузка Нажмите здесь для получения кода
Используемый язык HTML, CSS(меньше)
Внешние ссылки\ Зависимости
Ответный Да

Этот код представляет градиентное меню с использованием HTML и CSS(Less)

12. Модное меню

Хесус Родригес
Демонстрация и загрузка Нажмите здесь для получения кода
Используемый язык HTML, SCSS
Внешние ссылки\ Зависимости Да
Ответный Да

Этот код представляет собой причудливое выпадающее меню с использованием HTML и SCSS.

13. Полоса, как только меню CSS

Код- smpnjn
Демонстрация и загрузка Нажмите здесь для получения кода
Используемый язык HTML, CSS
Внешние ссылки\ Зависимости
Ответный Да

Этот код представляет выпадающее меню с использованием HTML и CSS.

14. Навигация с дополнительной навигацией

Код по- Кэссиди Уильямс
Демонстрация и загрузка Нажмите здесь для получения кода
Используемый язык HTML, SCSS
Внешние ссылки\ Зависимости
Ответный Да

Этот код представляет раскрывающееся меню навигации и поднавигации с использованием HTML и SCSS.

15. Выпадающее меню на чистом CSS (без JavaScript)

Код — Гарет МакКинли
Демонстрация и загрузка Нажмите здесь для получения кода
Используемый язык HTML, CSS
Внешние ссылки\ Зависимости Да
Ответный Да

Этот код представляет выпадающее меню без использования Javascript.

Автор записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *