Если вы использовали Foundation раньше, возможно, вам показалось, что компоненты меню / навигации немного утомительны. Если вы хотите создать панель значков или горизонтальное меню навигации боковой панели, вам необходимо использовать эти компоненты в точности такими, как они есть (и настроить их в соответствии с вашими потребностями, если вы хотите что-то еще).
С выпуском Foundation 6 все изменилось. В одном из своих самых больших на сегодняшний день капиталовложений Zurb удалось упростить процесс, чтобы вы могли работать вместе со своей разработкой.
В предыдущем посте я обсуждал многие новые функции в Foundation 6 . В этом посте я расскажу о навигационных меню. Вы увидите, что команда Zurb теперь предлагает урезанную сборку вместе с несколькими действительно полезными плагинами JavaScript, чтобы сделать систему меню лучше, чем когда-либо.
Упорядочение меню навигации
Компоненты навигации были подвергнуты серьезной реконструкции в Foundation 6. В Foundation 5 у вас был большой выбор меню, для каждого из которых требовалась своя собственная разметка, настройки и стили для правильной работы.
С последней версией Zurb преобразовал эти различные меню в одно большое меню с несколькими вариантами конфигурации. Таким образом, следующие меню исчезли :
- Встроенный список — используется для создания стандартного горизонтального меню, к которому вы привыкли
- Side Nav — используется для обозначения вертикального меню, обычно используется на боковых панелях или в других вертикальных местах
- Панель значков — используется для демонстрации пунктов меню вместе со значками (а иногда и значками).
- Sub Nav — Используется для создания элементов суб-навигации, таких как ссылки на разные части одной страницы.
Они были заменены одним компонентом под названием Меню .
Меню простое. Вы определяете свою разметку с a
элементов a
и li
внутри элемента ul
с помощью класса menu
:
<ul class="menu"> <li><a href="#">Option 1</a></li> <li><a href="#">Option 2</a></li> <li><a href="#">Option 3</a></li> </ul>
Этот новый компонент меню предлагает те же основные функции, что и предыдущие меню в Foundation 5, но содержит их в качестве параметров, так что вы можете выбрать, будет ли ваше меню вертикальным, горизонтальным, панелью значков и т. Д.
Простое меню
По умолчанию класс menu
добавляет отступы, тонкие цвета и другие аспекты макета, чтобы помочь вам начать работу. Если вы предпочитаете .simple
все самостоятельно, вы можете добавить класс .simple
в свое меню, и он будет .simple
большей части стиля.
<!-- A basic menu with most styling stripped out --> <ul class="menu simple"> <li><a href="#">Vanilla</a></li> <li><a href="#">Strawberry</a></li> <li><a href="#">Chocolate</a></li> <ul>
Горизонтальные и вертикальные меню
По умолчанию меню будут горизонтальными, что будет работать почти так же, как старое «встроенное меню» из Foundation 5. Если вы хотите иметь вертикальное меню вместо этого, это так же просто, как добавить vertical
класс в меню. Мы могли бы использовать эту функцию для создания, например, списка наших последних новостей.
<!-- Basic vertical menu example for showcasing blog items --> <ul class="menu vertical"> <li><a href="#">Dynamic Interactivity, 21st December 2015</a></li> <li><a href="#">Web Fundamentals, 12th December 2015</a></li> <li><a href="#">Intro to CSS, 02nd December 2015</a></li> </ul>
Подменю и вложенность
Если вы собираетесь иметь подменю, вы, скорее всего, в конечном итоге будете использовать один из плагинов меню, таких как выпадающие / развертываемые компоненты, однако вы можете легко сделать смещение подменю влево для использования в вертикальном меню. добавив nested
класс:
<!-- using the nested class to create a sub-menu inside a vertical menu --> <ul class="menu vertical"> <li><a href="#">Course One</a> <ul class="menu vertical nested"> <li><a href="#">Course One - One</a></li> <li><a href="#">Course One - Two</a></li> </ul> </li> <li><a href="#">Course Two</a></li> </ul>
Иконка Меню
Меню значков действительно хорошо работает в приложениях, ориентированных на приложения, и может быть легко реализовано с минимальным стилем.
В стандартное меню вы добавляете изображение значка внутри <span>
и переносите его внутри тега <a>
. Вы можете использовать либо изображение для вашего значка, либо один из элементов шрифта Foundation Icon .
Если вы выбрали шрифт значка, вам нужно включить его вручную в свой проект, и вместо использования span вы можете использовать элемент <i>
с соответствующими классами.
<!-- Simple icon menu using Foundation's icon font --> <ul class="menu"> <li><a href="#"><i class="fi-save"></i> <span>Save</span></a></li> <li><a href="#"><i class="fi-x"></i> <span>Delete</span></a></li> <li><a href="#"><i class="fi-arrow-left"></i> <span>Back</span></a></li> <li><a href="#"><i class="fi-arrow-right"></i> <span>Forward</span></a></li> </ul>
Все, что нам нужно сделать, это добавить правильное имя класса в элемент <i>
и мы готовы!
По умолчанию стандартный макет представляет собой горизонтальное меню со значками слева от каждого параметра. Если вам нужен значок над элементами меню, мы можем добавить .icon-top
. Это больше похоже на то, что вы видите на мобильных платформах с небольшим значком выше и текстом ниже.
Выпадающие, Развертывающиеся и Аккордеонные Меню
Стандартное меню прекрасно, но иногда вам нужно что-то более надежное, которое обрабатывает дочерние элементы и интерактивность динамически. Фонд 6 расширяет возможности предыдущих версий меню « Раскрытие» , « Развертывание» и « Аккордеон» . Все эти меню доступны через навигацию с помощью клавиатуры и используют семантическую разметку для облегчения вашей разработки.
Поскольку в этих меню используется библиотека JavaScript, вам необходимо настроить ее, выполнив следующие действия:
- Вы можете либо вызвать
$(document).foundation()
чтобы настроить его, если он есть в вашей сборке, либо - Включите ваше конкретное меню и создайте его. Например, чтобы настроить раскрывающееся меню, вы должны определить
var elem = new Foundation.Drilldown(element)
(после включения необходимых зависимостей).
Выпадающее меню должно быть вам действительно знакомо. Это стандартный дизайн меню, в котором дочерние элементы отображаются, когда их родители взаимодействуют (с помощью наведения мыши или клавиатуры). Добавление атрибута data-dropdown-menu
в меню вызовет все это динамически.
Меню Drilldown уникально тем, что вместо того, чтобы показывать вам новое меню поверх или ниже текущего меню, оно перемещает новое меню по текущему меню, позволяя вам «детализировать» X уровней до тех пор, пока вы не найдете нужную ссылку. после. Это действительно полезно в ситуации, когда у вас ограниченное пространство на экране, например, на мобильном телефоне.
JavaScript обрабатывает генерацию кнопки «Назад» и позиционирования. Все, что вам нужно сделать, это включить атрибут data-drilldown
во все элементы меню внутри вашего меню.
Аккордеонное меню — это как раз то, на что оно похоже, аккордеонное меню, которое вы можете щелкнуть, чтобы переключать (показывать / скрывать) подменю, нажимая на родительский элемент. Включите атрибут data-accordion-menu
верхнего уровня, чтобы заставить его работать.
Все плагины меню имеют свои собственные функции, события и опции, которые вы можете настроить. Например, если вы хотите активировать некоторые функции при закрытии подменю в меню Accordion, вы можете подключиться к up.zf.accordion menu
. Например:
// do something when the accordion closes $('.my-accordion-menu').on('up.zf.accordion menu', function() { alert('Menu Closed'); });
В целом функции, события и опции для них были оптимизированы в Foundation 6, поэтому, если вы реализовали их с помощью Foundation 5, вы можете проверить, как все это изменилось.
Адаптивная навигация
Эта функция является новой для Foundation 6. Ранее, если вы хотите отображать разные стили меню на разных профилях устройств, вы должны определить несколько меню и показать / скрыть их. В этой последней версии вы можете создать единое адаптивное меню, которое будет динамически изменяться в зависимости от того, какая точка останова / профиль устройства используется.
Мы начнем с определения нашего меню, как мы обычно делаем:
<ul class="menu"> <li><a href="#">Option 1</a></li> <li><a href="#">Option 2</a></li> <li><a href="#">Option 3</a></li> </ul>
Чтобы сделать меню отзывчивым, используйте атрибут data-responsive-menu
и предоставьте следующее:
- Тип меню по умолчанию (например, это может быть
dropdown
меню,dropdown
меню или менюaccordion
) - Дополнительные типы меню с префиксом размера профиля экрана. Например,
small-dropdown
,medium-drilldown
large-dropdown
,large-dropdown
и т. Д.
Предоставление этой информации позволит нашему меню трансформироваться в зависимости от того, какие значения мы передали. Это полезно, если вы хотите иметь стандартное раскрывающееся меню на более крупных устройствах, а затем вернуться к вертикальному аккордеонному / развернутому меню на небольших устройствах.
Если вы настроили свои классы точек останова, вы можете при желании определить еще больше комбинаций меню (например, показать раскрывающееся меню на очень больших экранах, но вернуться к развертывающимся меню, когда на большом и ниже).
Топ Бар
Давайте не забудем компонент Top Bar . Это, как и большинство других компонентов, было пересмотрено.
С помощью компонента Top Bar ваше главное меню может иметь как левый, так и правый раздел. Возможно, вы захотите поместить свои пункты главного меню слева, а затем кнопки поиска и действий справа. Основной формат выглядит следующим образом:
<div class="top-bar" id="top-bar"> <div class="top-bar-left"> <ul class="dropdown vertical medium-horizontal menu"> <li><a href="#">Monday</a></li> <li><a href="#">Tuesday</a></li> <li><a href="#">Wednesday</a></li> <li><a href="#">Thursday</a></li> <li><a href="#">Friday</a></li> </ul> </div> <div class="top-bar-right"> <ul class="dropdown vertical medium-horizontal menu"> <li><a href="#">January</a></li> <li><a href="#">February</a></li> <li><a href="#">March</a></li> <li><input type="search" placeholder="Search"></li> </ul> </div> </div>
Вы можете поместить в это меню все, что захотите, однако вам нужно будет отформатировать его и перебирать, пока оно не будет работать для вас (например, имеет смысл сделать внутренние меню «выпадающими» и «вертикальными», чтобы они хорошо работали на мобильных устройствах). ).
Если вы также хотите иметь переключатель меню (который был частью компонента в Foundation 5), вы можете использовать функцию адаптивного переключения .
Основным недостатком этого является то, что он будет отображать меню переключения на небольших устройствах, которые будут отображать / скрывать ваше меню. В документации есть больше информации, но ее настройки по умолчанию будут работать нормально в большинстве случаев.
<div class="title-bar" data-responsive-toggle="top-bar" data-hide-for="medium"> <button class="menu-icon" type="button" data-toggle></button> <div class="title-bar-title">Main Menu</div> </div>
Здесь важен атрибут data-responsive-toggle
, который должен совпадать с id
меню, которым вы хотите управлять (вот почему в этом поле указано top-bar
). Появится кнопка, которая будет переключать меню только при просмотре небольшого профиля.
Примеры меню
Ниже приведен пример CodePen, который демонстрирует некоторые из различных способов использования нового компонента меню. Документация меню — лучший источник, если вы хотите увидеть, как вы можете настроить параметры и параметры меню по умолчанию.
Огромное сокращение кода
Есть два преимущества в упорядочении компонентов меню в Foundation 6, первое из которых заключается в уменьшении сложности (так как теперь все представляет собой menu
только с разными опциями); Второе более тонкое преимущество заключается в том, что он значительно уменьшил размер фреймворка.
Обновленный компонент меню объединил более 5 структур меню и при этом удалил все устаревшие CSS, которые раньше были включены в платформу. Несмотря на то, что это несколько приукрашено в блоге Zurb , они удалили более 1000 линий стилей , объединив их все вместе.
Сокращение кода всегда полезно для разработчиков. Каркас весит меньше и загружается быстрее, его легче изучать и понимать, и будет легче обновляться в будущем.
Вывод
Фонд 6 действительно урезал и в процессе улучшил подавляющее большинство их компонентов. Прежде чем вам нужно было использовать ряд различных компонентов для получения необходимых вам меню, теперь это всего лишь один очень гибкий компонент.
Сочетание различных плагинов меню с пересмотренной сборкой меню создало мощный, но простой компонент, который вы должны использовать во всех своих проектах Foundation.