В теме Divi есть возможность создавать мегаменю. Мегаменю — это раскрываемое двухмерное меню в несколько колонок с широким выбором пунктов.
В статье приведен способ как подключить и настроить мегаменю Divi .
1. Как подключить мегаменю Divi
Для примера, подготовим меню для сайта
Стандартно для Divi это меню будет выглядеть так:
Для подключение мегаменю Divi в админпанели WordPress добавьте текст mega-menu в поле "Классы CSS" в настройках того пункта меню, подпункты которого хотите отобразить в виде мегаменю.
Теперь все подпункты пункта меню "Рубрики" будут отображаться в виде мегаменю. Добавлять текст в подпункты не надо.
Если поле "Классы CSS" не отображается при настройках пунктов меню - включите его отображение в настройках экрана вверху страницы админпанели WordPress. Для этого нажмите вкладку "Настройка экрана" и поставте галочку в поле "Классы CSS".
2. Как изменить количество колонок мегаменю Divi
По умолчанию в теме Divi мегаменю имеет 4 колонки. Однако количество колонок иможно изменить с помошью CSS. Добавьте приведенный ниже код в файл style.css дочерной темы Divi либо в настройках темы Divi в раздел "Пользователский CSS" админпанели WordPress.
5 колонок мегаменю
#top-menu li.mega-menu > ul > li:nth-of-type(5n) {
clear: none;
}
#top-menu li.mega-menu > ul > li:nth-of-type(6n) {
clear: none;
}
#top-menu li.mega-menu > ul > li {
width: 20%;
margin: 0;
}
Результат:
6 колонок мегаменю
#top-menu li.mega-menu > ul > li:nth-of-type(5n) {
clear: none;
}
#top-menu li.mega-menu > ul > li:nth-of-type(7n) {
clear: none;
}
#top-menu li.mega-menu > ul > li {
width: 16%;
margin: 0;
}
7 колонок мегаменю
#top-menu li.mega-menu > ul > li:nth-of-type(5n) {
clear: none;
}
#top-menu li.mega-menu > ul > li:nth-of-type(8n) {
clear: none;
}
#top-menu li.mega-menu > ul > li {
width: 14%;
margin: 0;
}
8 колонок мегаменю
#top-menu li.mega-menu > ul > li:nth-of-type(5n) {
clear: none;
}
#top-menu li.mega-menu > ul > li:nth-of-type(9n) {
clear: none;
}
#top-menu li.mega-menu > ul > li {
width: 12%;
margin: 0;
}
3. Как добавить изображение в меню
В меню, подготовленное выше в пункте 1, добавим в подзаголовки изображения:
Чтобы добавить изображения в название разделов мегаменю надо сделать следующее:
3.1. Подготовьте и загрузите изображения
Подготовьте нужное количество изображений в редакторе изображений с одинаковыми размерами: шириной 500 пикселей и высотой 300 пикселей. Добавьте эти изображения в медиабиблиотеку сайта:
3.2. Вставьте изображения в пункты меню
Для этого перед наименованием пункта меню в поле "Текст ссылки" добавьте код
<img src="url изображения" alt="Альтернативний текст" width="100%">
где "url изображения" - адрес изображения из медиабиблиотеки, а "Альтернативный текст" - замещающий изображение текст, если изображение по каким-то причинам не будет выведено. Заполнение тега "alt" важно для SEO.
Адрес изображения в медиабиблиотекие можно скопировать, кликнув на само изображение в библиотеке и войдя в режим "Изменить медиафайл" ( пункт админпанели WordPress: Медиафайлы -> Изменить )
3.3. Настройка отображения меню
Для настройки отображения пункта меню в поле "Классы CSS" меню добавьте текст mega-link тем самым добавляя пользовательский клсасс CSS к пункту меню.
В дальнейшем с помощью стилей CSS вы можете настраивать отображение пунктов меню с указанным классом.
Например приведенный ниже пользовательский CSS сделает шрифт меню больше и разместит его по центру. Кроме того, установит радиус рамки вокруг изображения, чтобы изображение выглядело симпатичнее.
.mega-link > a {
text-align: center;
font-size: 20px !important;
text-transform: uppercase;
font-weight: 400 !important;
letter-spacing: 3px;
}
.mega-link > a img {
margin-bottom: 8px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
Добавлять код надо либо в файл style.css дочерной темы, либо в настройках темы Divi в окно "Пользователский CSS" в админпанели WordPress:
4. Как улучшить удобство мегаменю для пользователя
Следует отметить один недостаток классического мегаменю Divi.
Посмотрите на рисунок ниже. Если вы захотите переместить мышь по траектории, показанной красной стрелкой, - то вы не достигнете поставленной цели и не доберетесь к пункту меню "Рубрика 1". Ибо если указатель мыши покинет пределы пункта меню "Рубрики" (ограничено серыым фоном) - то мегаменю исчезнет.
По сути чтобы добраться до пункта меню "Рубрика 1" вам надо двигать указатель мыши по следующей траектории:
Чтобы убрать такой недостаток мегаменю достаточно добавить на сайт несколько строк кода CSS
/* Сделать Мега-Меню не исчезающим сразу */
@media (min-width: 981px) {
.et-dropdown-removing > ul {
display: block!important;
}
.et-dropdown-removing > ul ul {
display: block!important;
}
#top-menu li.mega-menu:hover li ul {
visibility: visible;
opacity:1;
}
#top-menu li.mega-menu li ul {
display: block;
visibility: hidden;
opacity:0;
}
.nav li ul {
transition: all 0.5s 0.2s ease-out !important;
}
}
Добавлять код надо либо в файл style.css дочерной темы, либо в настройках темы Divi в окно "Пользователский CSS" в админпанели WordPress
5. Как сделать мегаменю компактным
Иногда хорошо смотриться и удобнее для пользования компактное мегаменю:
Приведенный ниже код CSS делает такое меню.
/* Сделать Мега-Меню компактным */
/* standard drop down */
.nav li ul {
width: 160px;
padding: 0px 0 3px;}
.nav li li {
line-height: 14px;}
.nav li li a {
font-size: 13px;}
#top-menu li li {
margin: 0;
padding: 0px 5px;}
#top-menu li li a {
width: 150px;}
/* mega menu drop down */
#top-menu li.mega-menu > ul {
width: 600px; /*ширина мегаменю*/
padding: 5px 5px;}
#top-menu li.mega-menu > ul > li > a, #top-menu li > ul > li > a {
padding: 7px 5px 7px;}
/* default or centered style header mega menu alignment */
.et_header_style_left #top-menu li.mega-menu > ul {
left: auto!important;
right: 0;}
.et_header_style_centered #top-menu li.mega-menu > ul {
left: auto!important;}
.et_header_style_centered #top-menu > li:last-child.mega-menu > ul {
left: auto!important;
right: 0!important;}
/* first row of titles */
#top-menu li.mega-menu > ul > li > a:first-child {
border-bottom: 1px solid #75adde;
font-weight: bold;}
/* sub-menu items - 2nd level */
.nav li li li a {
font-size: 13px;}
#top-menu li li a {
padding: 0px 5px;
font-weight: 300;}
/* drop down menu items on hover */
.nav ul li a:hover {
opacity: 1;
background-color: #88bae6;}
Добавлять код надо либо в файл style.css дочерной темы, либо в настройках темы Divi в окно "Пользователский CSS" в админпанели WordPress
Заключение
В статье приведены приемы работы с мегаменю в теме Divi.
В комменатрях ниже оставляйте отзывы, задавайте вопросы, делитесь опытом.
Удачи.
Александр Коваль
Хорошая статья, особенно если учесть, что не нужно для создания простого мега-меню использовать дополнительный плагин. Один минус — коды не скопировать, только вручную переписывать — а это не очень удобно в случае с большими кусками кодов)
Спасибо за отзыв, извините за неудобства, ошибку исправил — теперь коды можно скопировать.
Подскажите а как сделать чтобы отдельный элемент меню был выделен цветом? У меня получилось выделить в статичном меню через css а как только начинаю прокручивать- элемент опять становится стандартного цвета. И можно ли как-то «подстветить» надписи элементов меню при наведении на них мышки?? Заранее ОГРОМНОЕ спасибо за совет
В хедер (#main-header) при прокрутке добавляеться класс: .et-fixed-header Посмотрите настройки элемента для этого класса. Хедер после прокрутки: #main-header.et-fixed-header { }
Добрый день, подскажите пожалуйста, я сделала лендинг с помощью Divi, некоторых блоков у меня по 2 шт. (один открыт для ПК и планшета, второй для телефона). Проблема в том что в меню ссылка должна вести на блок, а он скрыт и ссылка не работает🥺
Здравия, Ольга. Поставьте ссылку на тот элемент, который будет виден на всех устройствах. Строку например.
Добрый день. Пытаюсь увеличить количество колонок. Добавляю код в файл файл style.css дочерней темы Divi. Но ничего не происходит. В чем может быть проблема
Здравия, Виталий! Возможная проблема «несрабатывания» кода — кеширование. Очистите кеш. Или попробуйте поставить код в другое место, например, в вкладку «Дополнительные стили».
Кеш очистил. Попробовал по вашему совету, поставил в дополнительные стили. Увы не помогло. Остается 4 пункта, дальше переходит на второй ряд