Сделать открывание списка при наведении в Bootstrap 4
В бутстрапе 4 в навбар можно добавлять выпадающие списки dropdown. Имеют они следующую вёрстку:
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown link
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</li>
Здесь вёрстка не всего навбара, а только пункта меню с выпадающим списком. Это фрагмент пункта Dropdown link из официальной документации https://getbootstrap.com (3-ий вариант).
По умолчанию список из подпунктов меню отображается только при клике на родительский пункт меню. Чтобы сделать так, чтобы список открывался при наведении курсора мышки, нужно сделать следующие действия:
В CSS добавляем:
@media only screen and (min-width: 768px) {
.dropdown:hover .dropdown-menu {
display: block;
margin-top: 0;
}
}
Это всё. Единственное, возможно вам нужно будет почистить кеш браузера чтобы увидеть изменения.
Теперь выпадающее меню будет выводится при наведении курсора на родительский пункт находящийся в навбаре.
Чтобы при клике на родительский пункт у которого есть выпадающий список выполнялся переход по ссылке указанной в атрибуте href, а не просто открывался выпадающий список, как это сделано в бутстрапе по умолчанию, в js-файл подключённый после библиотеки JQuery добавляем следующий код:
$('.dropdown-toggle').click(function(e) {
if ($(document).width() > 768) {
e.preventDefault();
var url = $(this).attr('href');
if (url !== '#') {
window.location.href = url;
}
}
});
Теперь при клике по пункту меню с выпадающим списком будет выполняться переход.
Спасибо!! А не подскажете как выровнять элементы вот здесь https://+++++
Вам нужно в css добавить этим элементам свойства
padding
илиmargin
.Чтобы дать конкретный ответ - для этого нужна ссылка на сайт. Из браузера видно как выравнивать, для этого есть консоль разработчика. Можете оставить ссылку, я её потом затру, чтобы сохранить анонимность вашего сайта.
htt---сайт---
Добавьте вот такой стиль в css :
или
Это выровняет блок ссылок где личный кабинет, корзина и т.д. по центру блока меню пользователя.
Если тема не обновляется, то можно это добавить в файл
/catalog/view/theme/default/stylesheet/stylesheet.css
. Если тема сайта обновляется, то лучше записать этот стиль в другое место, чтобы изменения не потерялись при обновлении темы.Возможно чтобы увидеть изменения, нужно будет почистить кеш браузера.
Спасибо Вам. Сделал..
И чтобы фон изменить в выпадающем списке где номера телефонов, добавьте ещё вот такой стиль:
Супер! Спасибо!!!
Кнопки соцсетей случайно не у меня на этом сайте генерировали?
Нужно поправить? Могу подсказать.
Мне вот тоже кто бы подсказал как мне правильно сколы на авто подкрасить. У меня три скола, нужно лечить их, но как я сомневаюсь.
Да иконки у Вас генерировал.. А что нужно подправить?
Я увидел там html некрасиво вставлен и сами кнопки с нижнего ряда наезжают на верхний.
Сейчас посмотрю.
Перед кнопками у вас объявлен список, но он пустой. Его лучше удалить. Вот это:
Сейчас продолжу.
Убрал..
Теперь смотрите, нажмите на главной сайта комбинацию клавиш
Ctrl + U
откроется исходный код страницы. Начиная со строки 55 вы увидите такое:
где то вы в вашей cms-ке добавили эти стили. Их тоже удалить. Именно первая строчка
.social{margin-top:-15px;}
сделала так что кнопки с нижнего ряда начали налазить на верхние. Весь этот блок - удалить. Это вы наверное когда разные кнопки пробовали добавили.Вместо этого лучше заменить на мои стили:
А ещё лучше оптимизированный вариант в одну строчку:
И сейчас напишу по самому блоку с кнопками, как поправить.
не могу найти этот маргин-топ -15px
А теперь блок кнопок. Смотрю вы стили кнопок в кнопку фейсбука запихали. Хоть и без ошибки синтаксиса, но лучше так не делать. Удалите из html код кнопок и вставьте так:
Если вы не можете вставить стили вместо того блока что я в предыдущем комменте сказал, то можете вставить стили прям в html перед блоком с кнопками. Тогда всё вместе получится вот так:
Я кнопки обернул в тег
div
с классомsocial-block
, теперь можно будет при надобности подвинуть весь блок с кнопками, уменьшить или увеличить отступы.Как код скопируете и вставите себе, маякните, я удалю чтобы не палить ваши соцсети в коде.
Вставил Ваш код..
И ещё увидел. У вас в 54 строчке исходного кода файл css подключён:
Удалите это подключение. И сам файл можно тоже удалить, это кусок стиля из иконочного шрифта font awesome для кнопки вайбера. Он вам не нужен - лишний мусор.
fa-viber удалил..
Откройте главную сайта и нажмите на клавиатуре кнопки Ctrl + U
Начиная с 54 строки вы увидите:
У вас подключён файл
catalog/view/javascript/font-awesome/css/fa-viber.css
. Сам файл вы удалили. нужно подключение удалить. Обычно это в файлеindex.php
темы в блоке между тегамиhead
прописано. Я на гитхабе посмотрел репозиторий этой cms-ки, там установочник структуру сайта расставляет. А так у меня сайта на этой cms-ке нету. Я последний раз в неё лет 7 назад рылся. Не помню как структура устроена чтобы подсказать что и где. Но там всё просто сделано. Это уже вы добавляли или кто то вам помогал.И потом идут стили, их тоже нужно удалить. Может это в настройках темы пользовательские стили. Может в том же файле index.php темы. Но я думаю это в настройках где то добавляются пользовательские стили.
Все сделал!!! Это модуль был для соцсетей, но я его не использывал.. И не удалил..
Теперь и код чище стал, и кнопки стоят ровно.
Я код с ссылками удалил. Удачных вам продаж!
Спасибо Вам! Вы очень помогли мне!
*** Войдите чтобы писать комментарии.