Как сделать секцию на одной ширине с меню
Просторы всемирной сети стремительно растут, размещая огромное множество различных веб-сайтов, каждый из которых стремится привлечь внимание посетителей и заинтересовать их.
Способы покорения людских сердец выбираются разные — от применения Flash анимации, использования баннеров и смелых дизайнерских решений до различных звуковых и визуальных эффектов.
Однако не стоит забывать, что сайт — это в первую очередь источник информации, поэтому удобству представления контента на сайте веб-разработчик должен уделять особое внимание и именно поэтому навигация, понятная посетителю на интуитивном уровне, так важна.
Меню является самой распространённой системой навигации на сайте, которую можно сравнить с оглавлением в книге. Меню должно быть заметно на любой странице ресурса, позволяя пользователю мгновенно перейти на интересующий раздел.
На объёмных сайтах, содержащих более 50 страниц, невозможно разместить полное меню для доступа ко всем разделам.
В таком случае следует использовать выпадающее меню на CSS, при клике на которое появляются дополнительные ссылки на подразделы.
Разновидности меню в CSS
Существует сразу несколько видов и типов CSS меню:
- Главное меню . Это список определённых ссылок на ключевые разделы веб-сайта.
- Дополнительное меню . Такое меню имеет иерархическую структуру и бывает трёх типов:
- Выпадающее меню . Раскрывается при наведении курсора мыши на пункт;
- Всплывающее меню сайта . Раскрывается при клике на определённом пункте;
- Статическое дополнительное меню для CSS . Древовидная структура, представленная в уже раскрытом виде.
Как создать меню в CSS?
Приведём пример создания простого горизонтального и вертикального меню на CSS с пояснениями.
Код горизонтального меню прописывается следующим образом:
В конечном итоге получается подобное горизонтальное меню :
Код вертикального меню записывается так:
Вертикальное меню , полученное при помощи данного кода, выглядит так:
Руководствуясь всеми вышеперечисленными принципами, приведём код для простого выпадающего меню:
Получаем такое выпадающее меню :
Как вы видите, достаточно простая HTML разметка и всего несколько строк CSS кода позволяют создать простое, но стильное меню, которое обязательно найдёт свое место в каком-либо веб-сайте. Обязательно попробуйте реализовать что-то подобное самостоятельно.
Узнайте, как создать мега-меню (раскрывающееся меню с полной шириной в навигационной панели).
Мега меню
Создать мега меню
Создайте раскрывающееся меню, которое появляется, когда пользователь перемещает указатель мыши на элемент внутри панели навигации.
Шаг 1) добавить HTML:
Пример
Mega Menu
Category 1
Category 2
Category 3
Пример как работает
Используйте любой элемент, чтобы открыть раскрывающееся меню, например , или
Используйте элемент контейнера (например,
), чтобы создать раскрывающееся меню и добавить сетку (столбцы) и добавить раскрывающиеся ссылки внутри сетки.
Шаг 2) добавить CSS:
Пример
/* Links inside the navbar */
.navbar a
font-size: 16px;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
>
/* The dropdown container */
.dropdown
overflow: hidden;
>
/* Dropdown button */
.dropdown .dropbtn font-size: 16px;
border: none;
outline: none;
color: white;
padding: 14px 16px;
background-color: inherit;
font: inherit; /* Important for vertical align on mobile phones */
margin: 0; /* Important for vertical align on mobile phones */
>
/* Add a red background color to navbar links on hover */
.navbar a:hover, .dropdown:hover .dropbtn background-color: red;
>
/* Mega Menu header, if needed */
.dropdown-content .header background: red;
padding: 16px;
color: white;
>
/* Show the dropdown menu on hover */
.dropdown:hover .dropdown-content display: block;
>
/* Style links inside the columns */
.column a float: none;
color: black;
padding: 16px;
text-decoration: none;
display: block;
text-align: left;
>
/* Clear floats after the columns */
.row:after content: "";
display: table;
clear: both;
>
Пример как работает
Мы создали стиль навигационной панели и навигационные ссылки с фоном-цвет, обивка и т.д.
Мы создали стиль выпадающего кнопки с фоном-цвет, обивка и т.д.
.dropdown класс использует position:relative , который необходим, когда мы хотим, чтобы раскрывающийся контент помещается прямо под кнопкой раскрывающегося списка (с помощью position:absolute ).
.dropdown-content класс содержит фактическое раскрывающееся меню. Он скрыт по умолчанию и будет отображаться при наведении курсора (см. ниже). Он позиционируется, чтобы быть видимым прямо под кнопкой раскрывающегося списка, и ширина установлена на 100%, чтобы охватить весь экран.
:hover селектор используется для отображения раскрывающегося меню, когда пользователь перемещает указатель мыши на кнопку раскрывающегося списка.
.column классы используются для создания трех столбцов, плавающих рядом друг с другом в раскрывающемся меню (для отображения различных категорий).
Адаптивное мега меню
Пример
/* Responsive layout - makes the three columns stack on top of each other instead of next to each other */
@media screen and (max-width: 600px) .column width: 100%;
height: auto;
>
>
Совет: Перейдите в наш CSS раскрывающегося меню учебник, чтобы узнать больше о раскрывающихся списках.
Совет: Откройте раскрывающееся меню, чтобы узнать больше о всплывающих раскрывающихся списках
Совет: Перейдите на наш CSS навигации Учебник, чтобы узнать больше о NavBars.
Совет: Перейдите на нашу отзывчивую верхнюю навигацию, чтобы узнать о том, как создать адаптивную навигационную панель.
Задача центрирования горизонтального меню может оказаться не такой уж простой, особенно для новичков в CSS. Поиск решений приводит к весьма ограниченному списку методов, основная часть которых полагается на трюки CSS, JavaScript или использование нестандартных правил, которые поддерживаются не всеми браузерами. В данном уроке мы разберем метод центрирования горизонтального меню, который использует только стандартные правила CSS и работает во всех браузерах.
Пример центрированного меню
Ниже приведено горизонтальное центрированное в данной колонке меню, в котором активизирована вторая закладка. Можно попробовать изменить размер окна браузера или страницы, чтобы убедиться в том, что меню всегда остается центрированным и рабочим.
На демонстрационной странице можно увидеть несколько вариантов оформления горизонтально центрированного меню. Любой из них можно использовать в своих проектах.
Разметка HTML
Все меню, примеры которых приводятся в данном уроке, используют простую структуру. Это обыкновенный неупорядоченный список ссылок, помещенный в элемент div.
Код CSS центрированного меню
Ниже приводится полный код CSS, с помощью которого центрируется меню. А объяснения принципа работы приводятся далее в уроке.
Как работает метод центрирования
Действие метода основано на относительном позиционировании плавающих блочных элементов один в другом. Для начала посмотрим, как изменяется размер элементов при смещении.
Элемент div без смещения
Элемент div (блочный) без смещения растягивается на всю доступную ему ширину.
Элемент div со смещением влево
Но если мы будем смещать элемент div влево, он автоматически будет ужиматься до размеров своего содержимого. Сжатие является ключевым моментом в реализации данного метода центрирования меню. Оно помогает перемещать меню в правильную позицию.
Стандартное выровненное влево меню
Возьмем стандартное выровненное влево меню и будем шаг за шагом его переделывать. Для наглядности пункты окрашены в разные цвета, так что сразу понятно, что куда вложено.
Обратите внимание на следующие моменты:
- Элемент centeredmenu div (голубой прямоугольник) смещается влево, но имеет ширину 100%, поэтому остается растянутым на всю страницу.
- Элемент ul (розовый прямоугольник) находится внутри элемента centeredmenudiv и смещается влево. Это означает, что он будет ужат до ширины своего содержимого, то есть до суммарной ширины всех закладок.
- Все элементы li (зеленые прямоугольники) находятся внутри элемента ul и смещаются влево. Таким образом, они ужимаются до размеров ссылок в них и выстраиваются в одну горизонтальную линию.
- Внутри каждой ссылки (оранжевые прямоугольники) выводится текст закладки: Закладка 1, Закладка 2 и так далее.
Смещаем положение неупорядоченного списка
Затем мы смещаем элемент ul вправо на 50% с помощью свойства position:relative; . Когда элемент смещается с указанием процента при таких условиях важно помнить, что суммарная ширина содержащихся в нем элементов не является его шириной. В нашем случае смещение происходит на половину окна браузера (или доступного для вывода пространства).В результате наше меню начинается на середине окна и частично выходит за его пределы. И переходим к следующему шагу.
Сдвигаем положение всех элементов меню
Осталось только сдвинуть все элементы li влево на 50%. Это 50% ширины нашего элемента ul (контейнера, который содержит меню). Таким образом, закладки смещаются точно на центр окна.
Несколько важных замечаний
При использовании данного метода центрирования надо помнить о нескольких важных моментах:
- Так как элемент ul частично выходит за рамки окна, то это приводит к выводу полос прокрутки. Поэтому нужно использовать правило overflow:hidden; для элемента centeredmenu div. Таким образом, выступающая часть элемента div будет обрезана.
- Так как элемент ul не выровнен по закладкам, то нельзя использовать никаких визуальных стилей для него. Оставьте элемент ul без фонового цвета и без рамки, чтобы он стал полностью невидимым. А стили для закладок нужно использовать только для элементов li.
- Если нужно задать особенные стили для первой и последней закладки, нужно добавить класс для первого и последнего элементов li, чтобы можно было стилизовать их индивидуально.
Заключение
Предложенное решение совместимо со всеми браузерами, не использует JavaScript и поддерживает изменяемый размер текста.
Общее описание секций, колонок и внутренних секций, позволяющих создавать нужную структуру шаблона страниц, мы рассмотрели в другой статье.
Теперь рассмотрим Секции Elementor и их настройки подробнее.
Секция — это основополагающий элемент, в который вставляются все виджеты Элементора.
Состоит из колонок и строк (рядов или внутренних секций).
Настройки секции.
Как и всех виджетов Elementor, настройки секции содержат три основные вкладки:
Рассмотрим каждую вкладку с настройками немного подробнее.
Вкладка Макет.
Отвечает за настройки структуры секции.
Включает два раздела:
Макет
Ширина макета.
Ширина включает две настройки.
Если Вам нужна своя ширина, например 500px, вы легко это сделаете путем перемещения ползунка ширины, или заполнив поле справа от него.
При выборе пункта Во всю ширину ползунок с регулировкой ширины вручную пропадает, что логично.
Разрыв колонок.
Включает следующие настройки.
Высота.
Данная настройка устанавливает высоту секции. Включает 3 варианта:
- по умолчанию. Высота секции устанавливается автоматически по высоте внутреннего содержимого.
- по размеру экрана. Секция занимает всю высоту экрана.
- мин. высота. Здесь можно установить необходимую высоту секции. Поддерживается установка высоты в px, vh и vw. По умолчанию при включении данной настройки, высота секции устанавливается в размере 400px.
При выборе пункта Мин. высота, становится доступен пункт Позиция колонок, так как при установке минимальной высоты может понадобится функция выравнивания расположения колонок по вертикали в пределах секции.
Позиция колонок.
Включает четыре настройки:
Покажем это визуально на изображениях ниже.
Позиция колонок — Посередине
Позиция колонок — Верх
Позиция колонок — Низ
Позиция колонок — Растягиваться
Вертикальное выравнивание.
Данный пункт включает выравнивание контента внутри секции и состоит из следующих пунктов:
По умолчанию весь контент секции выравнивается по верхнему краю.
Вертикальное выравнивание — по умолчанию.
Вертикальное выравнивание — Верх
Вертикальное выравнивание — Посередине
Вертикальное выравнивание — Низ
Вертикальное выравнивание — Расстояние между. Все внутренние элементы (виджеты) выравниваются относительно верхней и нижней границы секции. Крайние виджеты прижимаются к краям секции, а все остальные, расположенные между ними, расставляются на одинаковое расстояние по вертикали.
Вертикальное выравнивание — Расстояние около. Отступы верхнего и нижнего виджета равны половине отступа между внутренними виджетами
Вертикальное выравнивание — Равное расстояние. Виджеты становятся на равное расстояние друг от друга.
Overflow.
Данный пункт отвечает за появление полосы вертикальной или горизонтальной прокрутки, в случае, когда контент выходит за пределы секции.
Растянуть секцию.
В элементоре существует несколько способов растянуть секцию по ширине, но при установке некоторых тем это не всегда получается. Для этого разработчики внедрили принудительное растягивание секции средствами JavaScript.
Используете настройку для растягивание секции только в крайнем случае, когда не работают стандартные средства.
HTML-тег.
Данная настройка необходима для присваивания секции html-тегов:
Например, если секция создается для шапки сайта, можете присвоить секции тег , если секция содержит статью — тег . Не будем отписывать каждый тег, более подробнее о них можете прочитать здесь.
Структура.
В данном разделе есть возможность изменить структуру секции, выбрав из предложенных разработчиками вариантов. Я очень редко пользуюсь данной вкладкой, так как устанавливаю размер и количество колонок вручную.
Про стилевые настройки секции читайте в нашей следующей статье Секция. Вкладка Стиль.
Читайте также: