Инструменты сборки. Начало работы · Bootstrap
Узнайте, как использовать запущенные скрипты npm для загрузки нашей документации, компиляции исходного кода, запуска тестов и т.п.
Bootstrap в своей автоматической системе сборки использует скрипты NPM. package.json содержит удобные методы для работы с NPM, включая компиляцию, тесты и прочее.
Для запуска автоматической системы сборки и запуска нашей документации локально, вам понадобится копия исходников Bootstrap и Node:
- Установите Node, для управления зависимостями BS.
- Перейдите в директорию
/bootstrap
и запустите командуnpm install
для установки локальных зависимостей, перечисленных в package.json. - Установите Ruby, Bundler (
gem install bundler
) и запуститеbundle install
. Это установит зависимости Ruby, такие как Jekyll, и плагины.- В Windows:
- В Windows:
По завершении вы будете способны запускать в CMD разные команды, которые имеются там в наличии.
Использование скриптов NPM
Вот команды CMD для пакета package.json:
Имя | Описание |
---|---|
npm run dist |
Создает папку /dist , с компилированными файлами. Используйте Sass, Autoprefixer, и UglifyJS. |
npm test |
Для запуска тестов npm test локально и компиляции CSS и JS в папку /dist . |
npm run docs |
Собирает и тестирует CSS, JS и другие нужные для приложения ассеты (файлы/объекты, которые необходимы для работы приложения, типа файл со стилями для сайта), используемые при запуске документации локально командой npm run docs-serve . |
Автопрефиксер
Bootstrap использует Автопрефиксер (который участвует в процессе автоматической сборки) для автоматического добавления «вендорных префиксов» в некоторые свойства CSS во время процесса сборки. Это сберегает наше время, позволяя писать ключевые куски кода CSS один раз, и отменяя нужду в вендорных миксинах, в отличие от BS3.
Список браузеров, в которых есть поддержка автопрефиксера, здесь: /package.json
.
Локальная документация
Для запуска нашей документации локально вам потребуется Jekyll, генератор гибких статических сайтов, обеспечивающий: базовые включения, файлы markdown, шаблоны и нечто еще. Вот как запустить Jekyll:
- Смотрите «Установку инструментария» (выше) для инструкций по установке Jekyll («строитель» сайтов) и других зависимостей Ruby командой
bundle install
. - Запустите команду
в CMD из корневой директории/bootstrap
. - Откройте
http://localhost:9001
в вашем браузере.
Узнайте больше про Jekyll здесь.
Отслеживание багов
Если возникнут проблемы с установкой зависимостей, удалите все предыдущие версии зависимостей (глобальные и локальные). Тогда попробуйте снова npm install
.
Шаблоны. Документация Bootstrap 3.3.2
Дополнительные шаблоны созданы на основе базового, представленного разделом выше. Также рекомендуем посмотреть советы по Настройке Bootstrap для использования вашего собственного варианта.
Базовый шаблон
Ничего лишнего, кроме основного: CSS, JavaScript и использован контейнер.
Разметка
Несколько примеров разметки сетки Bootstrap с различными уровнями вложенности.
Jumbotron
Основу макета составляет большой экран Jumbotron и базовая система разметки. В панель навигации включены поля формы.Узкий Jumbotron
Большой экран Jumbotron на основе узкого контейнера. В качестве навигации используются навигационные табы.
Навигационное меню
Базовый шаблон, который включает панель навигации вместе с дополнительным контентом.
Статическое меню
Базовый шаблон, который включает статичесую панель навигации вместе с дополнительным контентом.
Фиксированное меню
Базовый шаблон, который включает зафиксированную панель навигации вместе с дополнительным контентом.
Тема Bootstrap
Основная тема Bootstrap-3 с популярными элементами визуального оформления.
Блог
Простой блог в две колонки с пользовательской навигацией, заголовком, и видом.
Обложка
Одностраничный шаблон, растянутый на весь экран, для построения простых и красивых сайтов.
Слайдер
В слайдере можно использовать изображения и текст. В контенте страницы добавлены некоторые новые компоненты.
Панель администратора
Шаблон базовой структуры панели администратора с фиксированным боковым меню и панелью навигации.
Страница входа на сайт
Простой шаблон страницы входа на сайт.
Прижатый футер
Прижатый футер отображается в нижней части страницы, когда содержимое окна слишком короткое.
Прижатый футер с меню
Прижатый футер отображается в нижней части страницы, когда содержимое окна слишком короткое. Панель навигации в верхней части.
Уведомления. Компоненты · Bootstrap
Предоставляйте контекстные сообщения обратной связи для типичных действий пользователя с помощью нескольких доступных и гибких предупреждающих сообщений.
Примеры
Уведомления доступны для любой длины как текста, так и опциональной кнопки отмены. Для правильной стилизации используйте один из 8 требуемых контекстуальных классов (например, .alert-success
). Для строчного отклонения используйте плагин уведомлений jQuery.
Это основное уведомление — check it out!
Это дополнительное уведомление — check it out!
Это уведомление об успехе — check it out!
Это уведомление об опасности — check it out!
Это уведомление-предупреждение — check it out!
Это инфо-уведомление — check it out!
Это светлое уведомление — check it out!
Это темное уведомление — check it out!
<div role="alert">
Это основное уведомление — check it out!
</div>
<div role="alert">
Это дополнительное уведомление — check it out!
</div>
<div role="alert">
Это уведомление об успехе — check it out!
</div>
<div role="alert">
Это уведомление об опасности — check it out!
</div>
<div role="alert">
Это уведомление-предупреждение — check it out!
</div>
<div role="alert">
Это инфо-уведомление — check it out!
</div>
<div role="alert">
Это светлое уведомление — check it out!
</div>
<div role="alert">
Это темное уведомление — check it out!
</div>
Использование вспомогательных технологий
Использование цвета как дополнительного инструмента информативности доступно только в визуальной сфере, что ограничивает пользователей вспомогательных технологий, например, программ для чтения текста с экрана. Удостоверьтесь, что информация, обозначенная цветом, также доступна из самого контента (т.е. в тексте) или содержится в альтернативных средствах – таких как дополнительный скрытый в классе .sr-only
текст.
Цвет ссылки
Используйте класс .alert-link
для соответствия цвета ссылок цветам уведомлений.
<div role="alert"> Это основное уведомление с <a href="#">примером ссылки</a>. </div> <div role="alert"> Это дополнительное уведомление с <a href="#">примером ссылки</a>. </div> <div role="alert"> Это уведомление об успехе с <a href="#">примером ссылки</a>. </div> <div role="alert"> Это уведомление об опасности с <a href="#">примером ссылки</a>. </div> <div role="alert"> Это уведомление-предупреждение с <a href="#">примером ссылки</a>. </div> <div role="alert"> Это инфо-уведомление с <a href="#">примером ссылки</a>. </div> <div role="alert"> Это светлое уведомление с <a href="#">примером ссылки</a>. </div> <div role="alert"> Это темное уведомление с <a href="#">примером ссылки</a>. </div>
Дополнительное содержимое
Уведомления также могут содержать элементы HTML – заголовки, параграфы и т.п.
Отличная работа!
Вы успешно прочитали это важное сообщение. Это пример текста немного длиннее, так что вы увидите, как работают отступы в сообщениях уведомлений.
Когда необходимо, используйте марджины для создания необходимых отступов.
<div role="alert">
<h5>Отличная работа!</h5>
<p>Вы успешно прочитали это важное сообщение. Это пример текста немного длиннее, так что вы увидите, как работают отступы в сообщениях уведомлений.</p>
<hr>
<p>Когда необходимо, используйте марджины для создания необходимых отступов.</p>
</div>
Отмена («крестик»)
Использование JS-плагина уведомлений дает возможность закрыть «крестиком» любое строчное уведомление.
- Удостоверьтесь, что подгрузили плагин уведомлений, или компилированный JavaScript из Bootstrap.
- Если вы загружаете JavaScript для уведомлений из файла, это потребует
util.js
- Добавьте «крестик» отмены и класс
.alert-dismissible
, который создаст дополнительный паддинг справа от сообщения и спозиционирует кнопку класса.close
. - В «крестике» отмены добавьте атрибут
data-dismiss="alert"
, запускающий функциональность JS. Используйте элемент<button>
для правильной работы на всех устройствах. - Для анимации уведомлений при их закрытии добавьте классы
.fade
и.show
.
Вот демо:
Holy guacamole! You should check in on some of those fields below. ×
<div role="alert">
<strong>Holy guacamole!</strong> You should check in on some of those fields below.
<button type="button" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
«Поведение» JavaScript
Триггеры
Включите закрытие уведомления через JavaScript:
$(".alert").alert()
Или сделайте это с помощью атрибутов data
на кнопке внутри уведомления, как показано ниже:
<button type="button" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
Заметим, что закрытие уведомления удалит его из DOM-структуры документа.
Методы
Метод | Описание |
---|---|
$().alert() |
Заставляет уведомление «слушать» события по клику на дочерние элементы с атрибутом data-dismiss="alert" . (Необязательно использовать здесь авто-инициализацию API) |
$().alert('close') |
Закрывает уведомление методом удаления его из DOM-структуры. Если в элемент добавлены классы .fade и .show – уведомление исчезнет до того, как удалено. |
$().alert('dispose') |
Уничтожает уведомление элемента. |
$(".alert").alert('close')
События
Плагин уведомлений Bootstrap использует несколько событий для связи с функциональностью уведомлений.
Событие | Описание |
---|---|
close.bs.alert |
Это событие запускается немедленно при вызове экземпляра метода close . |
closed.bs.alert |
Это событие запускается, когда уведомление закрыто (событие будет ждать завершения «переходов» СSS). |
$('#myAlert').on('closed.bs.alert', function () {
// do something…
})
front-end фреймворк. Документация Bootstrap 3.4
Bootstrap — front-end фреймворк. Документация Bootstrap 3.4Перейти к содержанию
Ищете Bootstrap 4? BBootstrap — изящный, интуитивно понятный и мощный первый мобильный фреймворк для быстрой и удобной веб-разработки.
Скачать Bootstrap
Текущая v3.4.0
Версия от 13 декабря 2018 г.
Создан для всех, во всем мире.
Bootstrap делает разработку веб-интерфейса быстрее и проще. Создан для людей всех уровней квалификации, устройств всех форм и проектов любого масштаба.
Препроцессоры
Быстрый Bootstrap с приятным CSS, так как исходные утилиты используют два популярных CSS препроцессора, Less и Sass. Быстро начать работу с предкомпилированного CSS или построить на источнике.
Один фреймворк, на каждое устройство.
Bootstrap легко и эффективно масштабирует веб-сайтов и приложений с единой базой кода, от телефонов до планшеты для настольных компьютеров с CSS медиа запросы.
Полный возможностей
С Bootstrap, вы получаете обширную и красивую документацию для общих HTML элементов, десятки пользовательского HTML и компонентов CSS, и удивительных плагинов JQuery.
Bootstrap с открытым исходным кодом. Он размещен, разработан и поддерживается на GitHub.
Посмотреть на GitHubОфициальные темы
Поднимитесь на новый уровень с официальными премиальными темами Bootstrap. Каждая тема — это собственный инструментарий, включающий все новые компоненты и плагины Bootstrap, полную документацию, инструменты для сборки и многое другое.
Просмотреть темы
Сделано на Bootstrap.
Миллионы разнообразных сайтов по всему Интернету построены на Bootstrap. Начните с нашей коллекцией примеров.
Мы демонстрируем десятки творческих проектов, созданных с Bootstrap на Bootstrap Expo.
Перейти на ExpoНавигация. Компоненты · Bootstrap
Документация и примеры использования навигационных компонентов Bootstrap.
Основы
Навигация в Bootstrap имеет общую для подобного типа элементов разметку, от базового класса .nav
до активных и «выключенных» состояний. Заменяйте классы-модификаторы для переключения между стилями.
Базовый компонент класса .nav
создан на флексбоксе, что обеспечивает хорошую базу для создания всех типов навигационных компонентов. В него входят несколько стилей, которые «перебивают» остальные (для работы со списками), добавлены паддинги ссылок для увеличения «зоны клика», и базовые стили «выключенных» состояний.
В базовый компонент класса .nav
не включено какое-либо состояние .active
. Следующие примеры включают класс, главным образом для демонстрации, что данный конкретный класс не подключает какие-либо специальные стили.
<ul>
<li>
<a href="#">Active</a>
</li>
<li>
<a href="#">Link</a>
</li>
<li>
<a href="#">Link</a>
</li>
<li>
<a href="#">Disabled</a>
</li>
</ul>
Классы используются везде, так что ваша разметка может быть сверх-гибкой. Используйте <ul>
как показано выше, или создайте свои; скажем, на основе элемента <nav>
. Из-за того, что .nav
использует display: flex
, ссылки в навигационной панели ведут себя, как если бы были элементами такой же панели, но с меньшим количеством кода.
<nav>
<a href="#">Active</a>
<a href="#">Link</a>
<a href="#">Link</a>
<a href="#">Disabled</a>
</nav>
Доступные стили
Изменяйте стиль компонентов .nav
классами-модификаторами и обычными классами. Смешивайте их и настраивайте как надо, или создайте свои.
Горизонтальное выравнивание
Изменяйте горизонтальное выравнивание вашего навигационного элемента с утилитами флексбокса. По умолчанию навигационные панели выровнены по левому краю, но вы можете легко это изменить на центр или правый край.
Центрировано классом .justify-content-center
:
<ul>
<li>
<a href="#">Active</a>
</li>
<li>
<a href="#">Link</a>
</li>
<li>
<a href="#">Link</a>
</li>
<li>
<a href="#">Disabled</a>
</li>
</ul>
По правому краю классом .justify-content-end
:
<ul>
<li>
<a href="#">Active</a>
</li>
<li>
<a href="#">Link</a>
</li>
<li>
<a href="#">Link</a>
</li>
<li>
<a href="#">Disabled</a>
</li>
</ul>
Вертикально
Располагайте вашу навигацию по вертикали, изменяя направление элемента flex классом .flex-column
. Надо расположить ее вертикально лишь на некоторых брейкпойнтах? Используйте отзывчивые версии (например .flex-sm-column
).
<ul>
<li>
<a href="#">Active</a>
</li>
<li>
<a href="#">Link</a>
</li>
<li>
<a href="#">Link</a>
</li>
<li>
<a href="#" tabindex="-1" aria-disabled="true">Disabled</a>
</li>
</ul>
Как всегда – вертикальная навигация доступна и без <ul>
.
<nav>
<a href="#">Active</a>
<a href="#">Link</a>
<a href="#">Link</a>
<a href="#" tabindex="-1" aria-disabled="true">Disabled</a>
</nav>
Вкладки
«Забирает» базовый элемент навигации с верха и добавляет класс .nav-tabs
для создания «вкладочного» интерфейса, Используйте их для создания зоны с поддержкой содержимого в виде вкладок с плагином JavaScript.
<ul>
<li>
<a href="#">Active</a>
</li>
<li>
<a href="#">Link</a>
</li>
<li>
<a href="#">Link</a>
</li>
<li>
<a href="#" tabindex="-1" aria-disabled="true">Disabled</a>
</li>
</ul>
Подушки
На том же коде HTML, но с используйте класс .nav-pills
:
<ul>
<li>
<a href="#">Active</a>
</li>
<li>
<a href="#">Link</a>
</li>
<li>
<a href="#">Link</a>
</li>
<li>
<a href="#" tabindex="-1" aria-disabled="true">Disabled</a>
</li>
</ul>
Наполняйте и выравнивайте по центру
Заставьте содержимое вашего .nav
расширяться на полную доступную ширину с помощью одного-двух классов-модификаторов. Для пропорционального заполнения всего доступного пространства элементами класса .nav-item
, используйте класс nav-fill. Заметьте, что всё горизонтальное место занято, но не каждый элемент навигационной панели имеет одинаковую ширину.
<ul>
<li>
<a href="#">Active</a>
</li>
<li>
<a href="#">Much longer nav link</a>
</li>
<li>
<a href="#">Link</a>
</li>
<li>
<a href="#" tabindex="-1" aria-disabled="true">Disabled</a>
</li>
</ul>
Используя навигацию на основе <nav>
, удостоверьтесь, что включаете .nav-item
в ссылки.
<nav>
<a href="#">Active</a>
<a href="#">Much longer nav link</a>
<a href="#">Link</a>
<a href="#" tabindex="-1" aria-disabled="true">Disabled</a>
</nav>
Для создания элементов равной ширины используйте класс .nav-justified
. Всё горизонтальное пространство будет занято ссылками навигационной панели, но, в отличие от примера с .nav-fill
выше, каждый элемент навигационной панели будет одинаковой ширины.
<ul>
<li>
<a href="#">Active</a>
</li>
<li>
<a href="#">Much longer nav link</a>
</li>
<li>
<a href="#">Link</a>
</li>
<li>
<a href="#" tabindex="-1" aria-disabled="true">Disabled</a>
</li>
</ul>
По аналогии с примером с .nav-fill
, где использована навигация на основе <nav>
, удостоверьтесь, что включили класс .nav-item
в ссылки.
<nav>
<a href="#">Active</a>
<a href="#">Much longer nav link</a>
<a href="#">Link</a>
<a href="#" tabindex="-1" aria-disabled="true">Disabled</a>
</nav>
Работа с гибкими классами
Если вам нужна «отзывчивая» навигационная панель, рассмотрите использование классов флексбокса. Более подробные в спецификации, они предлагают более широкую настройку по отзывчивым брейкпойнтам. В примере ниже наша навигационная панель будет расположена по вертикали на самом маленьком брейкпойнте, затем обретет горизонтальную разметку, которая, начиная с большего брейкпойнта, займет всю доступную ширину.
<nav>
<a href="#">Active</a>
<a href="#">Longer nav link</a>
<a href="#">Link</a>
<a href="#" tabindex="-1" aria-disabled="true">Disabled</a>
</nav>
Доступность
Если вы пользуетесь навигационными элементами для создания навигационной панели, добавьте role="navigation"
в наиболее подходящий для этого родительский контейнер <ul>
, или оберните элементом <nav>
всю навигацию. Не добавляйте атрибут role
в сам <ul>
, т.к. это может помешать вспомогательным технологиям распознать этот элемент как список.
Заметьте, что навигационные панели, даже если они стилизованы как вкладки классами .nav-tabs
, не должны содержать role="tablist"
, role="tab"
или role="tabpanel"
. Это атрибуты подходят лишь для динамических интерфейсов вкладок, как описано в WAI ARIA Authoring Practices. Смотрите, например, про поведение JavaScript c динамическими интерфейсами вкладок в этой секции.
Выпадающие элементы
Добавляйте меню с выпадающими элементами, используя совсем немного HTML и плагин выпадающих элементов JavaScript.
Вкладки с выпадающими элементами
<ul>
<li>
<a href="#">Active</a>
</li>
<li>
<a data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Dropdown</a>
<div>
<a href="#">Action</a>
<a href="#">Another action</a>
<a href="#">Something else here</a>
<div></div>
<a href="#">Separated link</a>
</div>
</li>
<li>
<a href="#">Link</a>
</li>
<li>
<a href="#" tabindex="-1" aria-disabled="true">Disabled</a>
</li>
</ul>
Подушки с выпадающими элементами
<ul>
<li>
<a href="#">Active</a>
</li>
<li>
<a data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Dropdown</a>
<div>
<a href="#">Action</a>
<a href="#">Another action</a>
<a href="#">Something else here</a>
<div></div>
<a href="#">Separated link</a>
</div>
</li>
<li>
<a href="#">Link</a>
</li>
<li>
<a href="#" tabindex="-1" aria-disabled="true">Disabled</a>
</li>
</ul>
Поведение JavaScript
Используйте плагин JavaScript вкладок — подключите его индивидуально или через компилированный bootstrap.js
— для расширения наших навигационных вкладок и «подушек» и создания вкладочных панелей локального содержимого, или даже выпадающие меню.
Если вы подключаете наши файлы JS, вам потребуется util.js
.
Интерфейсы динамически переключаемых вкладок, как описано в WAI ARIA Authoring Practices, требуют атрибутов role="tablist"
, role="tab"
, role="tabpanel"
и дополнительного атрибута aria-
для возможности передачи их структуры, функциональности и текущего состояния юзерам вспомогательных технологий (таких как экранные читалки).
Заметьте, что интерфейсы динамически переключаемых вкладок не должны содержать выпадающие меню, т.к. это вызовет проблемы с usability и доступностью. С точки зрения удобства для пользователя тот факт, что триггер-элемент текущей отображаемой вкладки не виден немедленно (т.к. он находится внутри закрытого выпадающего меню), может вызвать неудобство. С точки зрения доступности пока еще не существует проверенного способа обозначить и передать такой тип элементов в паттерне стандарте WAI ARIA, что означает, что этот тип элементов нельзя сделать доступным для юзеров вспомогательных технологий.
Raw denim you probably haven’t heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.
Food truck fixie locavore, accusamus mcsweeney’s marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.
<ul role="tablist">
<li>
<a data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">Home</a>
</li>
<li>
<a data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">Profile</a>
</li>
<li>
<a data-toggle="tab" href="#contact" role="tab" aria-controls="contact" aria-selected="false">Contact</a>
</li>
</ul>
<div>
<div role="tabpanel" aria-labelledby="home-tab">...</div>
<div role="tabpanel" aria-labelledby="profile-tab">...</div>
<div role="tabpanel" aria-labelledby="contact-tab">...</div>
</div>
Если вам необходимо, то можно работать с разметкой на основе <ul>
, как показано выше, или с любой произвольной «рулоной собственной» разметкой. Обратите внимание, что если вы используете <nav>
, вам не следует добавлять к ней role="tablist"
, так как это переопределит собственную роль элемента в качестве ориентира навигации. Вместо этого переключитесь на альтернативный элемент (в приведенном ниже примере, простой <div>
) и оберните вокруг него <nav>
.
Et et consectetur ipsum labore excepteur est proident excepteur ad velit occaecat qui minim occaecat veniam. Fugiat veniam incididunt anim aliqua enim pariatur veniam sunt est aute sit dolor anim. Velit non irure adipisicing aliqua ullamco irure incididunt irure non esse consectetur nostrud minim non minim occaecat. Amet duis do nisi duis veniam non est eiusmod tempor incididunt tempor dolor ipsum in qui sit. Exercitation mollit sit culpa nisi culpa non adipisicing reprehenderit do dolore. Duis reprehenderit occaecat anim ullamco ad duis occaecat ex.
Nulla est ullamco ut irure incididunt nulla Lorem Lorem minim irure officia enim reprehenderit. Magna duis labore cillum sint adipisicing exercitation ipsum. Nostrud ut anim non exercitation velit laboris fugiat cupidatat. Commodo esse dolore fugiat sint velit ullamco magna consequat voluptate minim amet aliquip ipsum aute laboris nisi. Labore labore veniam irure irure ipsum pariatur mollit magna in cupidatat dolore magna irure esse tempor ad mollit. Dolore commodo nulla minim amet ipsum officia consectetur amet ullamco voluptate nisi commodo ea sit eu.
<nav>
<div role="tablist">
<a data-toggle="tab" href="#nav-home" role="tab" aria-controls="nav-home" aria-selected="true">Home</a>
<a data-toggle="tab" href="#nav-profile" role="tab" aria-controls="nav-profile" aria-selected="false">Profile</a>
<a data-toggle="tab" href="#nav-contact" role="tab" aria-controls="nav-contact" aria-selected="false">Contact</a>
</div>
</nav>
<div>
<div role="tabpanel" aria-labelledby="nav-home-tab">...</div>
<div role="tabpanel" aria-labelledby="nav-profile-tab">...</div>
<div role="tabpanel" aria-labelledby="nav-contact-tab">...</div>
</div>
Плагин вкладок работает также с «подушками».
Consequat occaecat ullamco amet non eiusmod nostrud dolore irure incididunt est duis anim sunt officia. Fugiat velit proident aliquip nisi incididunt nostrud exercitation proident est nisi. Irure magna elit commodo anim ex veniam culpa eiusmod id nostrud sit cupidatat in veniam ad. Eiusmod consequat eu adipisicing minim anim aliquip cupidatat culpa excepteur quis. Occaecat sit eu exercitation irure Lorem incididunt nostrud.
Ad pariatur nostrud pariatur exercitation ipsum ipsum culpa mollit commodo mollit ex. Aute sunt incididunt amet commodo est sint nisi deserunt pariatur do. Aliquip ex eiusmod voluptate exercitation cillum id incididunt elit sunt. Qui minim sit magna Lorem id et dolore velit Lorem amet exercitation duis deserunt. Anim id labore elit adipisicing ut in id occaecat pariatur ut ullamco ea tempor duis.
<ul role="tablist">
<li>
<a data-toggle="pill" href="#pills-home" role="tab" aria-controls="pills-home" aria-selected="true">Home</a>
</li>
<li>
<a data-toggle="pill" href="#pills-profile" role="tab" aria-controls="pills-profile" aria-selected="false">Profile</a>
</li>
<li>
<a data-toggle="pill" href="#pills-contact" role="tab" aria-controls="pills-contact" aria-selected="false">Contact</a>
</li>
</ul>
<div>
<div role="tabpanel" aria-labelledby="pills-home-tab">...</div>
<div role="tabpanel" aria-labelledby="pills-profile-tab">...</div>
<div role="tabpanel" aria-labelledby="pills-contact-tab">...</div>
</div>
И с вертикальными «подушками».
Cillum ad ut irure tempor velit nostrud occaecat ullamco aliqua anim Lorem sint. Veniam sint duis incididunt do esse magna mollit excepteur laborum qui. Id id reprehenderit sit est eu aliqua occaecat quis et velit excepteur laborum mollit dolore eiusmod. Ipsum dolor in occaecat commodo et voluptate minim reprehenderit mollit pariatur. Deserunt non laborum enim et cillum eu deserunt excepteur ea incididunt minim occaecat.
Culpa dolor voluptate do laboris laboris irure reprehenderit id incididunt duis pariatur mollit aute magna pariatur consectetur. Eu veniam duis non ut dolor deserunt commodo et minim in quis laboris ipsum velit id veniam. Quis ut consectetur adipisicing officia excepteur non sit. Ut et elit aliquip labore Lorem enim eu. Ullamco mollit occaecat dolore ipsum id officia mollit qui esse anim eiusmod do sint minim consectetur qui.
Fugiat id quis dolor culpa eiusmod anim velit excepteur proident dolor aute qui magna. Ad proident laboris ullamco esse anim Lorem Lorem veniam quis Lorem irure occaecat velit nostrud magna nulla. Velit et et proident Lorem do ea tempor officia dolor. Reprehenderit Lorem aliquip labore est magna commodo est ea veniam consectetur.
Eu dolore ea ullamco dolore Lorem id cupidatat excepteur reprehenderit consectetur elit id dolor proident in cupidatat officia. Voluptate excepteur commodo labore nisi cillum duis aliqua do. Aliqua amet qui mollit consectetur nulla mollit velit aliqua veniam nisi id do Lorem deserunt amet. Culpa ullamco sit adipisicing labore officia magna elit nisi in aute tempor commodo eiusmod.
<div>
<div>
<div role="tablist" aria-orientation="vertical">
<a data-toggle="pill" href="#v-pills-home" role="tab" aria-controls="v-pills-home" aria-selected="true">Home</a>
<a data-toggle="pill" href="#v-pills-profile" role="tab" aria-controls="v-pills-profile" aria-selected="false">Profile</a>
<a data-toggle="pill" href="#v-pills-messages" role="tab" aria-controls="v-pills-messages" aria-selected="false">Messages</a>
<a data-toggle="pill" href="#v-pills-settings" role="tab" aria-controls="v-pills-settings" aria-selected="false">Settings</a>
</div>
</div>
<div>
<div>
<div role="tabpanel" aria-labelledby="v-pills-home-tab">...</div>
<div role="tabpanel" aria-labelledby="v-pills-profile-tab">...</div>
<div role="tabpanel" aria-labelledby="v-pills-messages-tab">...</div>
<div role="tabpanel" aria-labelledby="v-pills-settings-tab">...</div>
</div>
</div>
</div>
Используя атрибуты
Вы можете задействовать навигацию по вкладке или «подушке» без JavaScript, а просто добавив data-toggle="tab"
или data-toggle="pill"
к элементу. Используйте эти атрибуты в .nav-tabs
или .nav-pills
.
<!-- Nav tabs -->
<ul role="tablist">
<li>
<a data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">Home</a>
</li>
<li>
<a data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">Profile</a>
</li>
<li>
<a data-toggle="tab" href="#messages" role="tab" aria-controls="messages" aria-selected="false">Messages</a>
</li>
<li>
<a data-toggle="tab" href="#settings" role="tab" aria-controls="settings" aria-selected="false">Settings</a>
</li>
</ul>
<!-- Tab panes -->
<div>
<div role="tabpanel" aria-labelledby="home-tab">...</div>
<div role="tabpanel" aria-labelledby="profile-tab">...</div>
<div role="tabpanel" aria-labelledby="messages-tab">...</div>
<div role="tabpanel" aria-labelledby="settings-tab">...</div>
</div>
Через JavaScript
Задействуйте переключаемые вкладки через JavaScript (каждая вкладка задействуется индивидуально):
$('#myTab a').on('click', function (e) {
e.preventDefault()
$(this).tab('show')
})
Их можно активировать несколькими методами:
$('#myTab a[href="#profile"]').tab('show') // Select tab by name
$('#myTab li:first-child a').tab('show') // Select first tab
$('#myTab li:last-child a').tab('show') // Select last tab
$('#myTab li:nth-child(3) a').tab('show') // Select third tab
Эффект появления
Чтобы вкладки постепенно появлялись, добавьте класс .fade
в каждый элемент класса .tab-pane
. Первая вкладка .tab-pane
также должна иметь класс .show
, чтобы первоначальный контент был видимым.
<div>
<div role="tabpanel" aria-labelledby="home-tab">...</div>
<div role="tabpanel" aria-labelledby="profile-tab">...</div>
<div role="tabpanel" aria-labelledby="messages-tab">...</div>
<div role="tabpanel" aria-labelledby="settings-tab">...</div>
</div>
Методы
Асинхронные методы и переходы
Все методы API асинхронны и запускают переход. Они возвращаются функции, вызвавшей их, с началом перехода, но до его конца. Плюс, вызов метода к компоненту, выполняющему переход, будет проигнорирован.
Смотрите документацию.
$().tab
Активирует вкладку и контейнер содержимого. Вкладка должна иметь data-target
или href
, «нацеленные» на контейнер-узел в DOM.
<ul role="tablist">
<li>
<a data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">Home</a>
</li>
<li>
<a data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">Profile</a>
</li>
<li>
<a data-toggle="tab" href="#messages" role="tab" aria-controls="messages" aria-selected="false">Messages</a>
</li>
<li>
<a data-toggle="tab" href="#settings" role="tab" aria-controls="settings" aria-selected="false">Settings</a>
</li>
</ul>
<div>
<div role="tabpanel" aria-labelledby="home-tab">...</div>
<div role="tabpanel" aria-labelledby="profile-tab">...</div>
<div role="tabpanel" aria-labelledby="messages-tab">...</div>
<div role="tabpanel" aria-labelledby="settings-tab">...</div>
</div>
<script>
$(function () {
$('#myTab li:last-child a').tab('show')
})
</script>
.tab(‘show’)
Выбирает данную вкладку и показывает связанную с ней «подушку». Любая другая вкладка, которая была выбрана до этого, становится «невыбранной» и ее «подушка» прячется. Возвращается к функции-вызову до того, как модальный элемент показан или скрыт (т.е. до того, как произойдет событие shown.bs.tab
).
$('#someTab').tab('show')
.tab(‘dispose’)
Уничтожает вкладку элемента.
События
При показе новой вкладки события запускаются в такой порядке:
hide.bs.tab
(на текущей активной вкладке)show.bs.tab
(на той, которая вот-вот покажется)hidden.bs.tab
(на предыдущей активной вкладке, как для событияhide.bs.tab
)shown.bs.tab
(на вкладке, только что ставшей активной и только что показанной, такое же как для событияshow.bs.tab
)
Если ни одна вкладка не была активна, события hide.bs.tab
и hidden.bs.tab
не произойдут.
Тип события | Описание |
---|---|
show.bs.tab | Это событие запускается при показе вкладки, но до того, как новая вкладка показана. Используйте event.target и event.relatedTarget для «нацеливания» на активную вкладку и предыдущую активную вкладку (если доступно) соответственно. |
shown.bs.tab | Это событие запускается при показе вкладки после того, как новая вкладка показана. Используйте event.target и event.relatedTarget для «нацеливания» на активную вкладку и предыдущую активную вкладку (если доступно) соответственно. |
hide.bs.tab | Это событие запускается, когда новая вкладка вот-вот покажется (и т.о. – предыдущая активная вкладка вот-вот скроется). Используйте event.target и event.relatedTarget для «нацеливания» на текущую активную вкладку и следующую активную вкладку соответственно. |
hidden.bs.tab | Это событие запускается, когда новая вкладка показана (и т.о. предыдущая активная вкладка скрыта). Используйте event.target и event.relatedTarget для «нацеливания» на предыдущую активную вкладку и новую активную вкладку соответственно. |
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
e.target // newly activated tab
e.relatedTarget // previous active tab
})