Меню для адаптивных версий сайта
Здравствуйте уважаемые начинающие веб-мастера.
В предыдущей статье я рассказал, как делается адаптивный дизайн. Сложного в этом ничего нет, но вот в блогах на WordPress, есть такой элемент, как горизонтальное меню, и с его адаптацией возникают некоторые проблемы.
В этой статье я расскажу, и покажу, как просто переделать горизонтальное меню в выпадающее вертикальное, и применить его в адаптивных версиях сайта.
Всем, наверное, уже знакомы три горизонтальные палочки, открывающие меню настроек в Chrome, или панель управления в консоли WordPress.
Точно такой же можно сделать для открытия нашего меню, причём всё будем делать без использования скриптов, только html и css.
Вот примерно так это будет смотреться в спокойном состоянии.
А примерно так, при наведении курсора на значок три палочки.
Как видите, все ссылки, которые у нас располагались горизонтально в полноразмерной версии, теперь открываются вертикально, и по ним будет удобно перейти, даже имея здоровую пятерню и толстые пальцы.
Итак, код меню
CSS:
.htm { ul { li ul { li a { li a:hover { li a:active { .punct {.meny {
position: absolute;
top: 130px;
left: 0;
display: block;
padding: 5px;
}
width: 40px;
padding: 5px;
}
width: 150px;
text-align: center;
font-size: 20px;
list-style-type: none;
}
position: absolute;
display: none;
}
display: block;
}
color:#FA6132;
}
color: #ef7a04;
}
li:hover ul {
display: block;
}
background: #2AB8A9;
text-align: center;
padding: 15px;
border-radius: 2px;
box-shadow: 0px 0px 0px 1px #3E5C54;
margin: 0 0 0 -30px;
}
HTML:
<ul>
<li><span>≡</span>
<ul>
<li><a href="http://address post">Главная</a></li>
<li><a href="http://address post">О сайте</a></li>
<li><a href="http://address post">Плагины WordPress</a></li>
<li><a href="http://address post">Полезные советы</a></li>
<li><a href="http://address post">Установка программ</a></li>
<li><a href="http://address post">Шпаргалки</a></li>
</ul>
</li>
</ul>
В CSS Вы можете переделать внешний вид и цвет меню под свой дизайн, а в HTML добавить, или наоборот убавить пункты меню.
Теперь посмотрим, куда всё это разместить, чтоб меню появилось на странице.
Заходим Консоль — Внешний вид — Редактор — Заголовок (header.php), и перед закрывающим </div><!— #header —>, вставляем HTML.
Обновляем файл, и тут же в редакторе заходим в файл style.css, и сразу после директивы @media screen and (max-width: 600px), вставляем css код.
Весь код у меня на картинке не уместился, так что покажу только начало.
И ещё, до медиа запросов нужно вставить запрет на показ меню в полном формате
Теперь Вам останется только подправить значения в свойствах position, чтоб разместить меню там, где Вам будет удобнее.
Желаю творческих успехов.
Неужели не осталось вопросов? Спросить
Перемена
Адаптивный каркас сайта < < < В раздел > > > Адаптивный дизайн — легко
Универсальное адаптивное меню для сайта
Здравствуйте, уважаемые друзья. Сегодня я расскажу вам, как создать адаптивное меню для сайта. Создавать будем горизонтальное меню, которое будет адаптироваться под экраны мобильных устройств. А его универсальность заключается в том, что независимо от технологии создания вашего сайта, это меню будет работать на любом сайте. То есть достаточно исправить ссылки, название пунктов меню и подправить стили по ваш дизайн.
Ранее, я уже публиковал статью, в которой поделился двумя способами создания адаптивного меню. А сегодня рассмотрим ещё один способ.
Обычный вид меню для мониторов компьютера и больших экранов будет выглядеть так:
Вид меню на компьютереНа мобильных устройствах, меню в раскрытом виде будет отображаться так:
Вид меню на смартфонеСодержание
- Принцип построения универсального адаптивного меню.
- Процесс создания адаптивного меню.
- Шаг 1. Создание html структуры меню.
- Шаг 2. Подключение стилей css.
- Шаг 3. Подключение библиотеки jQuery и скрипта обработчика.
Принцип построения универсального адаптивного меню.

Итак, для того чтобы создать такое меню вам потребуется:
- Создать html каркас.
- Применить стили css.
- Подключить скрипт обработчик.
Разумеется, у вас на сайте есть меню, и вы его хотите сделать адаптивным. У вас есть два пути, первый – адаптировать существующее меню и второй – сделать новое адаптивное меню.
На большинстве сайтов, которые сделаны на CMS, проще создать новое меню, чем переделать старое. Так как само построение меню реализовано через php и запросы к базе данных, а стили css разбросаны среди многих других стилей. В общем, весь этот процесс переделки меню довольно трудоёмкое и кропотливое занятие.
На самописных сайтах работы с переделкой будет меньше, но все, же придётся повозиться.
В любом случае вы можете использовать стили и скрипт из этой статьи и адаптировать своё меню.
А для того чтобы создать новое адаптивное меню вам потребуется совсем немного времени. Изначально создаётся меню на основе тегов ul
и li
, затем добавляются стили css и подключается скрипт. Такое меню загружается и отзывается быстрей, так как работает без запросов к базе данных.
Стили css, для удобства, подключаются в отдельных файлах. Хотя их можно включить и в основные стили сайта. Я покажу пример подключения стилей через отдельные файлы.
Процесс создания адаптивного меню.
Шаг 1. Создание html структуры меню.
Первым делом нужно определиться с местом, где будет отображаться меню. Для этого нужно проанализировать файлы вашего шаблона. Как правило, меню выводится в шапке или сайтбаре. За эти основные блоки шаблона отвечают файлы header.php и sidebar.php. Именно в них и нужно искать место для вставки меню или замены старого. Для каждого шаблона – это индивидуальный процесс.
После того как вы определитесь с местом вставки нового меню, необходимо в это место поместить вот этот html каркас и изменить пункты меню и ссылки на свои.
<nav role="navigation"> <div> <div> <div> <button type="button" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> <span></span> <span></span> <span></span> </button> <a href="https://1zaicev.ru/">Бизнес в Сети</a> </div> <div> <ul> <li> <a href="#"> Главная </a> </li> <li> <a href="#" data-toggle="dropdown"> Рубрики <span></span> </a> <ul role="menu"> <li> <a href="#" target="_self"> Рубрика1 </a> </li> <li> <a href="#" target="_self"> Рубрика2 </a> </li> <li> <a href="#" target="_self"> Рубрика3 </a> </li> </ul> </li> <li> <a href="#"> Автор </a> </li> <li> <a href="#"> Блог </a> </li> <li> <a href="#"> Статьи </a> </li> <li> <a href="#"> Вход </a> </li> <li> <a href="#"> Регистрация </a> </li> </ul> </div> </div> </div> </nav>
Примечание: Оранжевым цветом я обозначил элементы, которые вы редактируете под ваш сайт.
Пункты меню можно добавлять и удалять. Как это делать я показываю в видеоуроке. За стрелку раскрывающегося меню отвечает вот этот код:
<span></span>
. Если раскрывающихся пунктов меню у вас несколько используйте этот код.
Шаг 2. Подключение стилей css.
Для того чтобы упростить процесс и не путаться с медиазапросами, подключать стили будем в виде отдельных файлов. Файлы стилей подключаются в файле header.php между тегами <head> … </head>
. По крайней мере, это так в большинстве современных шаблонах.
Ваша задача найти, где подключается основной файл стилей style.css и ниже него подключить стили адаптивного меню.
Подключение стилей cssНо, для начала вы должны скачать файлы со стилями и скриптом здесь. После этого скопировать файлы bootstrap.css и menu.css в папку с вашей темой. А после в файле header.php, между тегами ХЕД добавить вот эти строки подключения:
<link rel="stylesheet" type="text/css" href="http://Ваш домен/wp-content/themes/Ваша тема/bootstrap.css" />
<link rel="stylesheet" type="text/css" href="http://Ваш домен/wp-content/themes/Ваша тема/menu.css" />
Шаг 3. Подключение библиотеки jQuery и скрипта обработчика.
И для завершения адаптации меню необходимо добавить подключение библиотеки jQuery и скрипта, который будет раскрывать меню при нажатии.
И хотя, библиотека jQuery у вас скорей всего уже подключена, вы это увидите между тегами ХЕД в файле header.php, я на всякий случай покажу, как её подключить. А заодно и скрипт обработчик подключим, который вы скачали в архиве.
В том же файле header.php, перед закрытием тега </head>
вставляете вот эти строки кода:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript" src="http://Ваш домен/wp-content/themes/Ваша тема/bootstrap.min.js"></script>
Примечание: файл bootstrap.
min.js, вместе со стилями тоже нужно скопировать в папку темы вашего сайта. Возможно, в вашей теме есть папка JS, тогда скопируйте этот файл туда и укажите это в пути к файлу.
Итак, всё готово, можно проверять результат. Медиазапросы построены на точке 768 px, как только экран браузера станет меньше этой величины, меню адаптируется. Точку медиазапроса вы можете поменять в файлах стилей.
А теперь в качестве наглядного примера, как работает адаптивное меню, и как его установить на сайт предлагаю посмотреть видеоурок.
На этом у меня сегодня всё, я желаю вам успехов и до встречи в новых статьях и видеоуроках!
С уважением, Максим Зайцев.
Pure CSS Responsive Horizontal-to-Scrollable Menu Layout
|
Простое меню с горизонтальной прокруткой с помощью CSS
Я уже давно думаю об альтернативном подходе к адаптивной навигации. Что-то, что не связано со значком переключения «гамбургер». Это сложно, потому что нам не предоставлено то же пространство, что и нативным приложениям.
Хотя я, конечно, не первый, кто использует эту идею, она использовалась в ранних версиях приложения Facebook и используется на некоторых страницах веб-сайта Apple. Это шаблон, который может стать идеальной заменой меню «гамбургер». Итак, в этом посте цель состоит в том, чтобы использовать только CSS для горизонтальной навигации с прокруткой.
Чего мы хотим избежать при создании этого меню
Что сделало меню «гамбургер» таким успешным, так это то, насколько дискретно и легко было просто убрать все эти элементы. Что, в свою очередь, является причиной того, что это было признано неудачным с точки зрения участия. Видимость является основной причиной для изучения различных вариантов, но есть и другие вещи, которых было бы идеально избегать.
Обычно фиксированные элементы, поскольку для них требуется два метчика
Работа Mobile Safari на iOS ужасна для всего, что закреплено в нижней части области просмотра. Централизация его в окне просмотра слева или справа может скрыть содержимое, что, в свою очередь, будет столь же раздражающим. Затем все сводится к тому, что более неудобно для пользователя; так как есть несколько хороших примеров использования нижней навигации на веб-сайте.
Любой список, подобный
Список, подобный меню, может мешать самой странице. Хотя он очень доступен с самого начала, тем не менее, я думаю, вы можете продвигать более ценный контент, который вы хотели бы, чтобы посетитель увидел изначально. Особенно на сайте, где вы хотите, чтобы контент потреблялся, может стать утомительным прокручивать навигацию каждый раз, когда вы нажимаете на ссылку.
Коснитесь/щелкните, чтобы перейти в меню
Просто, ничем не лучше «гамбургера». У вас все те же проблемы, и не так уж очевидно, что вы прыгнули вниз по странице. Это может быть немного неудобно, если вы не найдете то, что хотели, в рамках навигации.
Так чем же лучше горизонтальная навигация?
На устройствах с сенсорным экраном горизонтальная прокрутка гораздо более естественна и плавна (особенно на iOS), чем горизонтальная прокрутка на компьютере — по крайней мере, в большинстве случаев.
Реализация
Реализация является гибкой для работы с вашим макетом. Независимо от того, расположен ли он рядом с вашим логотипом, он будет работать. Просто примените стили к любому элементу, который вы предпочитаете.
УСБ
Здесь работают два свойства: white-space: nowrap
и overflow-x: auto
. Вы должны убедиться, что элементы не переносятся, в противном случае он будет вести себя нормально, а разрешение прокрутки с использованием auto
означает, что прокрутка будет доступна при необходимости. Это небольшое количество CSS заставит любую область иметь горизонтальную прокрутку.
/* [1]: Все элементы помещаются в одну строку, что приводит к переполнению при необходимости. [2]: автоматическое переполнение означает, что полоса прокрутки не будет отображаться, если она не нужна.[3]: Сделайте плавную прокрутку на устройствах iOS перед [4]: скрыть уродливые полосы прокрутки в Edge, пока не будет наведена прокручиваемая область. [5]: скрыть полосу прокрутки в браузерах WebKit. */ .прокрутить { пробел: nowrap; /* [1] */ переполнение-х: авто; /* [2] */ -webkit-overflow-scrolling: сенсорный; /* [3] */ -ms-overflow-style: -ms-autohiding-scrollbar; /* [4] */ } /* [5] */ .scroll::-webkit-полоса прокрутки { дисплей: нет; }
Важно использовать -webkit-overflow-scrolling
, так как это увеличивает скорость и простоту использования областей прокрутки. Однако, начиная с Safari 13, это поведение по умолчанию. На устройствах Android по умолчанию проще прокручивать, поэтому вам не о чем беспокоиться. -ms-overflow-style: -ms-autohiding-scrollbar
позволяет пользователям IE 10, 11 и Edge использовать полосу прокрутки при наведении.
Далее вы можете полностью скрыть полосу прокрутки. Вы можете сделать это, ориентируясь на ::-webkit-scrollbar
псевдоэлемент и улучшить внешний вид для пользователей Windows Chrome. Однако из-за небольшого тестирования в Windows прокрутка может быть сложнее. Я считаю, что это может зависеть от вашей мыши.
Наконец, вам может быть интересно узнать о Firefox, похоже, на момент написания статьи такого способа не существовало.
HTML
<заголовок> Логотип <навигация> Блог Портфолио Загрузки О нас Контакты заголовок>
В зависимости от того, какую область вы хотите прокрутить, вы можете применить стили к заголовку или навигации.
Варианты использования
См. Навигацию Pen Horizontal Scroll от Стива (@stevemckinney) на CodePen.
Убедитесь, что для элементов не задана ширина
При таком подходе вас может зацепить область, в которой к элементам применяется процент ширины
. Если вам нужно убедиться, что что-то всегда имеет процентную ширину
, попробуйте вместо этого использовать min-width
. Используя процент , ширина
всегда будет процентом видимой области, а не тем, что переполняется.
Минусы
На самом деле это довольно простое решение, хотя у каждого решения есть недостатки, я перечислил те, которые я могу придумать ниже. Я не видел ни одного источника, тестирующего подобную навигацию, поэтому я перечисляю области, вызывающие беспокойство.
Потребность в возможностях
Доступность не является серьезной проблемой. Поскольку многие вещи требуют аффордансов. Я всегда стараюсь, чтобы элемент навигации был частично обрезан. Другие альтернативы включают добавление тени или затухание элементов.
Не совсем идеально, если пользователь просматривает с узким окном в Windows
Горизонтальная прокрутка не самая лучшая на настольном компьютере (если у вас нет Magic Mouse). Если вы работаете в Windows, вам не обойтись без перетаскивания полосы прокрутки. Единственный разумный метод скрытия полос прокрутки существует для IE11 и Edge, если вы хотите, чтобы он вел себя аналогично OS X. Если для вас это проблема, есть решение.
Фликити
Что-то, на что я хочу обратить внимание, будет реализовано с помощью Flickity. Мне нравится Flickity из-за ванильной реализации Javascript. Использование этого метода означает, что полосы прокрутки скрыты. Удобство использования будет увеличено на всех типах устройств благодаря различным способам взаимодействия с ним.
После внедрения Flickity вы можете сохранить .scroll
CSS и добавить к нему следующее:
.scroll::-webkit-полоса прокрутки { дисплей: нет; }
Как я уже упоминал ранее, я сказал использовать это осторожно.