Как сделать сайдбар
Перейти к содержимому

Как сделать сайдбар

  • автор:

Что такое сайдбар и как его сделать привлекательным

Что такое сайдбар и как его сделать привлекательным

Для владельцев сайтов важно, чтобы пользователям было легко ориентироваться и перемещаться на ресурсе. Этому способствует подключение сайдбара. В этой статье вы узнаете, что такое сайдбар, зачем он нужен на сайте и как сделать его эффективным.

Что такое сайдбар

Что такое сайдбар

Сайдбаром называют боковую панель, визуально отделенную от содержимого страницы сайта. Здесь присутствуют информационные и навигационные элементы, с помощью которых посетители легко ориентируются по сайту. Сайдбар располагается в виде колонки слева или справа от контента.

Нужна ли боковая панель и для чего

  • навигационное меню;
  • информационные блоки;
  • функциональные элементы (например, корзина);
  • реклама, акции;
  • ссылки на статьи;
  • фильтры товаров;
  • дополнительные виджеты.

Они выглядят органично и привлекают внимание пользователей.

Боковая панель

Маркетинг

Читайте также:

Что такое Телепорт от Google, и как с ним работать

Что такое Телепорт от Google, и как с ним работать

Виды

Рассмотрим три вида сайдбаров, отличия которых заключаются в расположении на сайте. Чаще всего боковую панель размещают справа от основной информации.

Пример сайдбара

Иногда панель располагают слева.

Сайдбар слева

Редко встречается сайдбар по обе стороны или с двумя столбцами с одной стороны.

Сайдбар с двумя столбцами

На сайте можно расположить и три, и четыре панели. Такой прием встречается редко и подходит интернет-магазинам с большим количеством функционала. При верстке разработчикам необходимо создать адаптивность под все разрешения экрана.

Что можно добавить в сайдбар

Из-за боковой панели может страдать контент: площадь размещения уменьшают, шрифты делают мельче, чтобы поместить больше информации. Чтобы сделать sidebar на сайте эффективным, стоит размещать только полезные элементы.

Элементы навигации и управления

Навигация облегчает пользователям поиск, что важно и для коммерческого сайта, и для информационного. Меню лучше располагать повыше, чтобы пользователь увидел его на первом экране и нашел нужные разделы.

Социальные виджеты

Эти разделы обеспечивают быстрые переходы пользователей по ссылкам на социальные сети. Кнопки выглядят лаконично и удобно, призывают к подписке, не перекрывая контент. Аналогичный призыв к действию в текстовом формате занял бы больше места.

Социальный виджет

Информация об авторе или о компании

Биография автора, краткий рассказ о становлении компании – это важная информация для пользователей. Подобная информация может говорить об успешности бренда и повысить лояльность клиентов.

Конверсионные элементы

В качестве конверсионного элемента в сайдбаре используют формы подписки. С помощью них можно ненавязчиво обратить внимание на рассылку, привлечь новых пользователей и расширить базу подписчиков.

Реклама

Реклама на сайдбаре – рискованная затея. Ее размещение рассеивает внимание посетителей, заставляя избегать всех элементов, представленных на боковой панели. Поэтому ее нужно делать визуально привлекательной, но не выбивающейся из общего дизайна страницы. Также необходимо учитывать такое явление как «баннерная слепота» — игнорирование навязываемой рекламы.

Для наибольшей эффективности используют следующие приемы:

  • добавляют яркие цвета;
  • внедряют привлекательные символы;
  • пишут продуманные заголовки.

Анонсы контента

С помощью анонсов пользователя можно подольше задержать на сайте, вовлечь в продолжительное взаимодействие. Это увеличивает такие параметры как глубина просмотра и время сессии.

Анонсы лучше размещать внизу страницы, чтобы не отвлекать от чтения основной информации. Так, например, на сайте CNN анонсы появляются после того, как пользователь дочитывает новость.

Анонс контента в сайдбаре

Чего не должно быть в сайдбаре

Бесполезные элементы отягощают страницу, делая использование сайдбара неэффективным. В сайдбарах не следует размещать:

  • облако тегов;
  • виджет «свежие записи»;
  • календарь;
  • счетчики;
  • раздел «последние комментарии».

Каждый из этих элементов не несет полезной информации для пользователей, но занимает место, ухудшая юзабилити страницы.

Принципы оформления сайдбара

При создании сайдбара следует придерживаться принципов размещения и оформления.

Количество сайдбаров на сайте

Рекомендуется использовать не более одного сайдбара. В пользу этого есть несколько аргументов:

  1. Две (и более) боковые панели закрывают основной контент, делая его неудобным для чтения.
  2. Главная информация на странице может не привлекать внимание из-за отвлекающих элементов сайдбара.
  3. В адаптивном дизайне панели размещаются внизу, что меняет облик сайта и делает его неузнаваемым.

Размеры

Ширину нужно устанавливать, опираясь на основное содержимое, чтобы сайдбар не перекрывал приоритетный контент. Стандартно она составляет 20-30% от ширины области контента, если боковая панель одна. Если используется более одного сайдбара, суммарная ширина не должна превышать 50%. Высота не должна пересекать границы экрана, в противном случае посетителям придется прокручивать.

Расположение сайдбара

Чаще всего боковую панель располагают с правой стороны. Это улучшает восприятие основной страницы. Если же вы хотите, чтобы пользователи обратили внимание именно на сайдбар, его лучше поместить слева.

Цветовые схемы и оформление

Неудачной цветовой палитрой можно оттолкнуть пользователей. Боковая панель не должна выбиваться из общего дизайна сайта и гармонировать с контентной частью. Поэтому переход между элементами следует делать плавным.

Маркетинг

Читайте также:

Сайт в 2022 году: какой способ создания подойдет вам

Сайт в 2022 году: какой способ создания подойдет вам

Как сделать сайдбар

Боковую панель можно спроектировать с помощью CSS и HTML или через WordPress. Для этого понадобится готовый макет сайта, чтобы правильно распределить ширину желаемого блока.

При создании сайдбара вручную нужно:

  1. Открыть кодовый редактор.
  1. Создать общий блок div, где будут располагаться колонки, и выбрать ему класс (например, layout).
  2. Выбрать позиционирование для контейнера и свойство колонок .
  3. Настроить дизайн панели: цвета, шрифты.

Создание сайдбара

Ширину необходимо указывать для каждого отдельного пункта навигации. Потому что у них абсолютное позиционирование, а значит их ширина будет равна ширине внутреннего контента.

Код сайдбара

В WordPress не нужно писать код вручную, что значительно упрощает процесс. Работа проходит в конструкторе, где регистрируется навигационная панель с добавлением виджетов. Для этого нужно записать несколько функций в PHP файлы. Потребуются массивы с данными, которые будут ссылаться на виджеты и их теги div.

Параметры сайдбара в коде

Заключение

Сайдбар – один из важных инструментов для продвижения сайта. Он привлекает внимание посетителей и повышает юзабилити. Для эффективности его нужно сделать визуально привлекательным и интересным. Сайдбар упростит пользователям навигацию, расскажет о важных рубриках, акциях, анонсах, а владельцу повысит конверсии.

Как сделать сайдбар за 5 строк кода

Сайдбары хороши в двух случаях: если на них расположено что-то настолько важное, что они должны всегда быть перед глазами (взять, к примеру, любой почтовый клиент, да хотя бы и Gmail) или если нужно иметь возможность это самое важное спрятать для экономии места (опять же, как в Gmail, но уже в мобильной версии). Браться за создание сайдбаров с нуля – задача не для средних умов, да и вообще бессмысленно. Для такой задачи лучше употребить соответствующий фреймворк. Об одном из таких примеров мы сегодня и поговорим.

image

Коротко о Webix

Прежде чем перейти непосредственно к коду, давайте обмолвимся коротко, что это за библиотека такая. Итак, Webix представляет из себя библиотеку UI компонентов разной сложности, от простой кнопки до Spreadsheet Widget, с помощью которого можно создавать онлайн таблицы в стиле Excel. Помимо собственно компонентов, в наличии механизм обработки событий, поддержка оффлайн-режима, интеграция с jQuery, AngularJS, Vue.js, Backbone.js, online инструменты: Skin builder, Form builder. Заявлена совместимость с Angular 2.

Узнать больше можно на странице документации, а мы плавно переходим к практической части.

Подключаем необходимые файлы

Если вы загрузите архив с библиотекой, внутри папки codebase вы обнаружите необходимые js и css файлы:

Также можно использовать CDN:

npm install webix
nuget install Webix

Или если вы предпочитаете Bower:

bower install webix

Все вышеперечисленное относится непосредственно к Webix. Для того, чтобы получить возможность создавать сайдбары, нам понадобится еще парочка файлов. Доступ к ним же через CDN:

Сайдбар на примере e-mail клиента

Поскольку мы уже заговорили об e-mail клиентах, не будем отступать от этой темы и создадим в качестве примера именно такое приложение. С помощью компонента DataTable я взял вот такой вот просмотрщик имейлов, к которому мы и будем добавлять сайдбар:

image

Поскольку обзор DataTable не входит в наши планы, подробно останавливаться на нем я не буду, исходный код примера можно будет посмотреть ниже.

Начнем с основ. Для того, чтобы добавить в приложение определенный компонент, в Webix используется свойство view. Например, мы хотим создать кнопку:

view: "button"

Для инициализации Webix-приложения нам понадобится следующий код:

// опционально. код выполнится после загрузки страницы webix.ready(function()< // конструктор webix.ui(< // описание приложения view: "button", >); >);

Код выше создаст страницу, состоящую из одной кнопки. Поскольку наше приложение состоит из нескольких компонентов, нам нужно задуматься о создании лэйаута. Для этого используются свойства rows и cols, которые служат для создания рядов и колонок.

webix.ui(< cols: [ < view: "button">, < view: "button">] >);

Создаст уже две колонки, по одной кнопке в каждой. Комбинируя эти свойства, добавляя вложенные колонки и ряды, меняя их размеры, например, с помощью свойства gravity можно создать лэйаут необходимой сложности.

Теперь мы можем перейти к сайдбару. Он основан на компоненте Tree и также использует формат JSON для описания своей структуры. Для удобства лучше хранить такое описание в отдельной переменной.

Наш сайдбар будет состоять из следующих пунктов меню:

var menu_data = [ , < /* прочие пункты */ >, , < id: "work", value: "Work">, < id: "news", value: "News">]> ], 

Каждый элемент должен иметь уникальный ID. value определяет, каким будет текст пункта меню, а icon – иконку. Webix использует набор иконок Font Awesome. Обратите внимание на пункт Tags. Он содержит вложенные подменю, которые будут открываться по клику.

Итак, суммируя все вышесказанное, мы можем перейти к нашему приложению:

webix.ui(< cols:[ /* первая колонка, сайдбар */ < view: "sidebar", data: menu_data, >, /* вторая колонка */ < /* dataview component */ >] >);

В принципе, это все, что требуется для создания базового сайдбара: указать, что именно этот компонент мы хотим создать, а также выбрать источник данных о его структуре.

В результате мы получили вот такой сайдбар:

image

Пример кода и демку можно посмотреть здесь.

Добавляем кнопку для скрытия сайдбара

Если мы хотим сэкономить немного места или просто не хотим, чтобы сайдбар мозолил глаза, можно добавить в приложение кнопку-гамбургер, знакомую нам по мобильным (и не только) приложениям. Для этого необходимо добавить к приложению верхний тулбар, что немного усложнит наш лэйаут. Теперь он будет состоять из двух рядов. В первый из них, верхний ряд мы и поместим тулбар. Второй, нижний, останется без изменений и будет состоять их просмотрщика с сайдбаром:

webix.ui(< rows:[ < /* здесь будет тулбар */>, , < /* наши имейлы */ >]> ] >);

Давайте разберемся с кодом, который нам понадобится для создания заголовка. Как и было сказано, тип создаваемого компонента определяется значением свойства view. В данном случае этим значением будет toolbar. Его содержимое определяется значением свойства elements. В нашем случае мы поместим на тулбар следующие элементы: кнопку-гамбургер, заголовок и несколько иконок-уведомлений:

 >, /* заголовок */ < view: "label", label: "Webix E-Mail CLient">, < /* добавляем пустое пространство */ >, /* уведомление 1 */ < view: "button", type: "icon", icon: "envelope-o", width: 45, css: "app_button", badge:4>, /* уведомление 2 */ < view: "button", type: "icon", icon: "bell-o", width: 45, css: "app_button", badge:10>] >,

Свойства type: «icon» и icon: «icon-name» создают кнопки-иконки. Свойство click позволяет определить функцию, которая будет вызываться по клику. В данном случае, она переключает состояния сайдбара. К двум последним кнопкам мы добавили свойство badge, которое позволяет использовать оранжевые бейджи с номерами, соответствующими значению свойства.

Вот что получилось в итоге:

image

В свернутом виде остаются видимыми иконки меню сайдбара. Наведя на них курсор, можно посмотреть содержимое меню и выбрать один из пунктов.

Раскрытый сайдбар имеет уже привычный нам вид:

image

И да, обратите внимание на значки уведомления справа вверху. Именно ради этих оранжевых кружочков мы и использовали свойство badge.

Попробовать этот пример и поиграть с кодом можно по этой ссылке.

Заключение

Приведенный пример не описывает всех возможностей данного компонента. Помимо прочего, вы можете задавать шаблоны для элементов сайдбара: указывать CSS-класс, который нужно к ним применить, менять внешний вид стрелок для многоуровневых меню и т.д. Sidebar наследует API компонента Tree, а также предоставляет набор уникальных для него методов. Более подробно о них вы можете прочитать на странице документации.

  • javascript library
  • sidebar
  • боковая панель

Создание сайдбара с помощью HTML, CSS и JavaScript

Предлагаю пошаговое руководство по создания отзывчивого сайдбара (боковой панели). Этот графический элемент можно использовать для навигации в любых веб-проектах. Уверен, что существует миллион различных способов создания боковой панели, но я выбрал именно этот.

Все шаги руководства будут доступны каждому, кто обладает базовыми знаниями в области HTML, CSS и JavaScript. Замечу, что изначально этот сайдбар создавался для использования на дашборде/CMS, поскольку он позволяет добавить множество опций меню.

Из личных предпочтений я использовал ванильный JavaScript вместо jQuery. Единственная необходимая зависимость — Font Awesome 6.2 — последняя доступная на данный момент версия. Я использовал бесплатную версию Font Awesome 6.2, доступ к которой можно получить здесь.

Чтобы начать работу, выполните следующие шаги. Вы можете скачать код из GitHub по этой ссылке.

Шаг 1: Настройте HTML и не забудьте добавить Font Awesome 6.2 CDN в тег .

 


Side Bar Tutorial




















Main Content

Lorem ipsum


Шаг 2: Настройте CSS.

/* Стиль по умолчанию */
* margin: 0;
font-family: 'Arial', sans-serif;
>

/* Сайдбар */
.side-bar position: fixed;
width: 3%;
height: 100%;
padding: 1%;
background-color: #303030;
color: #fff;
border: 1px solid #000;
>
.side-top display: none;
margin: 0 0 0 0;
background-color: #181818;
>
.side-mid margin: 10px 0 25px 0;
text-align: center;
>
.side-element-menu display: none;
margin: 0 0 15px 0;
padding: 10px 0px;
border-radius: 4px;
>
.side-element display: block;
margin: 0 0 15px 0;
padding: 10px 0px;
border-radius: 4px;
>
.side-title display: none;
>
.chosen-section background-color: #181818;
color: #8970c2;
>
.side-element:hover cursor: pointer;
color: #8970c2;
>

/* Панель ховера */
.hover-bar display: none;
position: fixed;
margin-left: 5%;
width: 10%;
height: 100%;
padding: 1%;
background-color: #181818;
color: #fff;
border: 1px solid #000;
>
.hover-mid display: none;
margin: 10px 0 25px 0;
>
.active-hover display: block;
>

/* Основной контент */
.main-content margin: 0 0 0 6%;
width: 92%;
padding: 15px 0px 15px 15px;
>
.mc-extend margin: 0 0 0 18%;
width: 80%;
>

@media only screen and (max-width: 600px) /* Side bar */
.side-bar display: block;
position: unset;
width: 100%;
padding: unset;
background-color: #303030;
color: #fff;
border: 1px solid #000;
>
.side-top display: block;
padding: 7px 15px;
>
.side-mid display: none;
text-align: unset;
margin: 0px;
>
.side-element-menu display: block;
margin: 0;
>
.side-element display: block;
margin: 0 0 0px 0;
padding: 10px 15px;
border-bottom: 1px solid #e8e8e8;
border-radius: 0px;
>
.side-title display: inline-block;
margin: 0 0 0 10px;
>
/* Панель ховера */
.hover-bar z-index: 1;
right: 0;
top: 0;
padding: 15px;
width: 65%;
height: 100%;
border-radius: 4px;
overflow: auto;
background-color: #181818;
color: #fff;
box-shadow: 4px 4px 4px 4px #8970c2;
>
.hover-mid margin: 0px 0 25px 0;
>
/* Основной контент */
.main-content margin: 0;
width: unset;
padding: 15px;
>
.mc-extend margin: 0;
width: unset;
padding: 15px;
>
>

Шаг 3: Добавьте JS.

window.addEventListener('load',function() // Сайдбар 
const menuOption = document.querySelectorAll(".side-element");
const menuBtn = document.getElementById("menu-btn");
const hoverClass = document.querySelector(".hover-bar");
const sections = document.querySelectorAll(".hover-mid");
menuOption.forEach(function (item) item.addEventListener('click', function() if( this.dataset.hover !== undefined ) menuOption.forEach(function (m) m.classList.remove('chosen-section');
>);
const chosenSection = this.dataset.hover;
sections.forEach(function (s) if(chosenSection === s.id) let containsHover = document.getElementById(chosenSection).classList.contains('active-hover');
switch(containsHover) case false:
document.getElementById(chosenSection).classList.add('active-hover');
hoverClass.classList.add('active-hover');
document.querySelector(".main-content").classList.add("mc-extend");
item.classList.add("chosen-section");
break;
case true:
document.getElementById(chosenSection).classList.remove('active-hover');
hoverClass.classList.remove('active-hover');
document.querySelector(".main-content").classList.remove("mc-extend");
item.classList.remove("chosen-section");
break;
>
> else document.getElementById(s.id).classList.remove('active-hover');
>
>);
>
>);
>);
// Отзывчивость
const sideBarOptions = document.querySelector(".side-mid");
menuBtn.addEventListener('click', function() let icon = this.querySelector('.fa-bars');
let displayCheck = window.getComputedStyle(sideBarOptions).display;
if(displayCheck == 'none') sideBarOptions.style.display = 'block';
icon = this.querySelector('.fa-bars');
icon.classList.add('fa-xmark');
icon.classList.remove('fa-bars');
> else sideBarOptions.style.display = 'none';
icon = this.querySelector('.fa-xmark');
icon.classList.add('fa-bars');
icon.classList.remove('fa-xmark');
menuOption.forEach(function (m) m.classList.remove('chosen-section');
>);
hoverClass.classList.remove('active-hover');
sections.forEach(function(s) document.getElementById(s.id).classList.remove('active-hover');
>);
>
>);
>);

Вы можете дополнительно включить в сайдбар такой элемент, как меню “Избранное”, и динамически загружать понравившиеся страницы. Если вы используете стек LAMP, то, вероятно, примерно представляете, как добавить эту функцию.

Читайте нас в Telegram, VK и Дзен

Расположить сайдбар слева страницы

Обычно, сайдбары размещаются справа от содержимого страницы. А мне понадобилось создать сайдбар слева. С API разобрался, создать сайдбар смог, но он расположен справа. Как решить эту проблему? С помощью CSS?

netcat ★★
03.03.13 21:16:07 MSK

#content < width: 700px; float: right; >#sidebar

makeB
( 04.03.13 06:40:48 MSK )

.sidebar < float: left; width: ширина; >.content

anonymous
( 04.03.13 09:32:32 MSK )
Ответ на: комментарий от makeB 04.03.13 06:40:48 MSK

Не работает. Сайдбар всего-лишь чуть выпирает влево из своей прежней позиции.

netcat ★★
( 04.03.13 12:32:20 MSK ) автор топика
Последнее исправление: netcat 04.03.13 12:32:30 MSK (всего исправлений: 1)

Ответ на: комментарий от netcat 04.03.13 12:32:20 MSK

Ты хочешь чтобы тебе через астрал весь твой CSS распарсили?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *