Вкладки

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

Код вкладок состоит из двух частей — это отображение самих вкладок, а также информации с ними связанных.

Вначале создаём список <ul> с классами nav и nav-tabs. Важны оба класса, иначе мы не получим желаемый вид. Каждая вкладка формируется элементом <li>, для текущей открытой вкладки требуется добавить класс active. Текст на вкладках делается с помощью ссылок, для каждой из них следует добавить атрибут data-toggle со значением tab. Сама ссылка указывает на элемент с идентификатором, который должен отображаться при открытии вкладки. Вот что в итоге получится.

<ul class="nav nav-tabs" role="tablist">
  <li role="presentation" class="active"><a href="#tab1" role="tab" data-toggle="tab">Сепульки</a></li>
  <li role="presentation"><a href="#tab2" role="tab" data-toggle="tab">Сепулькарии</a></li>
  <li role="presentation"><a href="#tab3" role="tab" data-toggle="tab">Сепуление</a></li>
</ul>

Даже с этим куцым кодом вкладки должны уже работать и визуально переключаться.

Переходим к выводимому тексту. Оборачиваем всё элементом <div> с классом tab-content, внутри для каждой вкладки делаем отдельный <div> с классом tab-pane. Плюс добавляем уникальный идентификатор, связывающий текст с самой вкладкой. Последний штрих — для текущей вкладки указываем класс active.

<div class="tab-content">
 <div role="tabpanel" class="tab-pane active" id="tab1">
  Важный элемент цивилизации ардритов с планеты Энтеропия.
 </div>
 <div role="tabpanel" class="tab-pane" id="tab2">
  Устройства для сепуления.
 </div>
 <div role="tabpanel" class="tab-pane" id="tab3">
  Занятие ардритов с планеты Энтеропия.
 </div>
</div>

Соединяем вместе два фрагмента и получаем итоговый код для создания вкладок.

Пример 1. Создание вкладок

<ul class="nav nav-tabs" role="tablist">
  <li role="presentation" class="active"><a href="#tab1" role="tab" data-toggle="tab">Сепульки</a></li>
  <li role="presentation"><a href="#tab2" role="tab" data-toggle="tab">Сепулькарии</a></li>
  <li role="presentation"><a href="#tab3" role="tab" data-toggle="tab">Сепуление</a></li>
</ul>
<div class="tab-content">
 <div role="tabpanel" class="tab-pane active" id="tab1">
  Важный элемент цивилизации ардритов с планеты Энтеропия.
 </div>
 <div role="tabpanel" class="tab-pane" id="tab2">
  Устройства для сепуления.
 </div>
 <div role="tabpanel" class="tab-pane" id="tab3">
  Занятие ардритов с планеты Энтеропия.
 </div>
</div>

Результат данного примера показан на рис. 1.

Вид вкладок

Рис. 1. Вид вкладок

Плавный переход

Переход между вкладками происходит мгновенно, но можно сделать это с небольшим эффектом, если добавить класс fade к блоку с текстом. Тогда текст будет плавно исчезать и появляться. Для активной вкладки обязательно надо включить ещё один класс in, без него возникнут ошибки.

<div class="tab-content">
 <div role="tabpanel" class="tab-pane active in fade" id="tab1">
  Важный элемент цивилизации ардритов с планеты Энтеропия.
 </div>
 <div role="tabpanel" class="tab-pane fade" id="tab2">
  Устройства для сепуления.
 </div>
 <div role="tabpanel" class="tab-pane fade" id="tab3">
  Занятие ардритов с планеты Энтеропия.
 </div>
</div>

Вкладки на всю ширину

Размер вкладки зависит от длины текста в ней, но можно насильно изменить их ширину, чтобы вкладки занимали всё доступную ширину. Просто добавьте класс nav-justified к элементу <ul>.

<ul class="nav nav-tabs nav-justified" role="tablist">

Вот как выглядят подобные вкладки (рис. 2).

Вкладки на всю ширину

Рис. 2. Вкладки на всю ширину

При уменьшении размера окна такие вкладки меняют свой вид и выстраиваются не по горизонтали, а друг под другом (рис. 3).

Вид вкладок при уменьшении размера окна

Рис. 3. Вид вкладок при уменьшении размера окна

Вид вкладок

Традиционно вкладки имеют вид унаследованный из жизни — выступающие из папки кусочки картона с надписью. Заменив класс nav-tabs на nav-pills получим вкладки в виде пилюль (рис. 4).

Изменение вида вкладок

Рис. 4. Изменение вида вкладок

Код будет таким.

<ul class="nav nav-pills" role="tablist">

Вкладки также можно расположить вертикально, для этого предназначен класс nav-stacked.

<ul class="nav nav-pills nav-stacked" role="tablist">

Вид таких вкладок продемонстрирован на рис. 5.

Вертикальное расположение вкладок

Рис. 5. Вертикальное расположение вкладок

Автор: Влад Мержевич
Последнее изменение: 16.02.2024