CSS
Глобальные CSS-настройки, основные HTML-элементы с расширенными классами и продвинутая система сетки.
Глобальные CSS-настройки, основные HTML-элементы с расширенными классами и продвинутая система сетки.
Получите информацию о ключевых частях инфраструктуры Bootstrap, включая наш подход к лучшей, быстрой и сильной веб-разработке.
Bootstrap использует определенные HTML элементы и CSS свойства, которые требуют использования HTML5 doctype. Включите его в начало всех ваших проектов.
<!DOCTYPE html>
<html lang="en">
...
</html>
С Bootstrap 2 мы добавили опциональные мобильные стили для ключевых аспектов фреймворка. С Bootstrap 3 мы переписали проект, чтобы он был мобильным с самого начала. Вместо добавления опциональных мобильных стилей, они встроены прямо в ядро. Фактически, Bootstrap мобильный первый. Мобильные стили можно найти по всей библиотеке вместо отдельных файлов.
Для обеспечения правильного отображения и масштабирования касанием,
добавьте мета-тег viewport в ваш <head>
.
<meta name="viewport" content="width=device-width, initial-scale=1" />
Вы можете отключить возможности масштабирования на мобильных устройствах,
добавив user-scalable=no
к мета-тегу viewport. Это отключает
масштабирование, что означает, что пользователи могут только прокручивать, и
делает ваш сайт более похожим на нативное приложение. В целом, мы не
рекомендуем это на каждом сайте, поэтому используйте осторожно!
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
/>
Bootstrap устанавливает базовые глобальные стили отображения, типографики и ссылок. Конкретно мы:
background-color: #fff;
на body
@font-family-base
,
@font-size-base
и @line-height-base
как нашу
типографическую основу
@link-color
и
применяем подчеркивание ссылок только при :hover
Эти стили можно найти в scaffolding.less
.
Для улучшенного кроссбраузерного отображения мы используем Normalize.css, проект от Nicolas Gallagher и Jonathan Neal.
Bootstrap требует содержащий элемент для обертывания содержимого сайта и
размещения нашей системы сеток. Вы можете выбрать один из двух контейнеров
для использования в ваших проектах. Обратите внимание, что из-за
padding
и многого другого, ни один контейнер не может быть
вложенным.
Используйте .container
для адаптивного контейнера фиксированной
ширины.
<div class="container">...</div>
Используйте .container-fluid
для контейнера полной ширины,
охватывающего всю ширину вашего viewport.
<div class="container-fluid">...</div>
Bootstrap включает адаптивную, мобильную первую жидкостную систему сетки, которая соответствующим образом масштабируется до 12 колонок по мере увеличения размера устройства или viewport. Она включает предопределенные классы для легких вариантов макета, а также мощные миксины для генерации более семантических макетов.
Системы сетки используются для создания макетов страниц через серию строк и колонок, которые содержат ваш контент. Вот как работает система сетки Bootstrap:
.container
(фиксированная
ширина) или .container-fluid
(полная ширина) для правильного
выравнивания и отступов.
.row
и
.col-xs-4
, доступны для быстрого создания макетов сетки.
Миксины Less также могут использоваться для более семантических макетов.
padding
. Этот padding компенсируется в строках для первой и
последней колонки через отрицательный margin на .row
.
.col-xs-4
.
.col-md-*
к элементу будет влиять не только на его стилизацию
на средних устройствах, но и на больших устройствах, если класс
.col-lg-*
отсутствует.
Посмотрите на примеры для применения этих принципов к вашему коду.
Мы используем следующие медиа-запросы в наших файлах Less для создания ключевых точек останова в нашей системе сетки.
/* Очень маленькие устройства (телефоны, меньше 768px) */
/* Нет медиа-запроса, так как это по умолчанию в Bootstrap */ /* Маленькие
устройства (планшеты, 768px и больше) */ @media (min-width: @screen-sm-min) {
... } /* Средние устройства (десктопы, 992px и больше) */ @media (min-width:
@screen-md-min) { ... } /* Большие устройства (большие десктопы, 1200px и
больше) */ @media (min-width: @screen-lg-min) { ... }
Мы иногда расширяем эти медиа-запросы, чтобы включить
max-width
для ограничения CSS более узким набором устройств.
@media (max-width: @screen-xs-max) { ... } @media
(min-width: @screen-sm-min) and (max-width: @screen-sm-max) { ... } @media
(min-width: @screen-md-min) and (max-width: @screen-md-max) { ... } @media
(min-width: @screen-lg-min) { ... }
Посмотрите, как аспекты системы сетки Bootstrap работают на множественных устройствах с удобной таблицей.
Очень маленькие устройства Телефоны (<768px) | Маленькие устройства Планшеты (≥768px) | Средние устройства Десктопы (≥992px) | Большие устройства Десктопы (≥1200px) | |
---|---|---|---|---|
Поведение сетки | Горизонтально всегда | Свернуто в начале, горизонтально выше точек останова | ||
Ширина контейнера | Нет (авто) | 750px | 970px | 1170px |
Префикс класса | .col-xs- |
.col-sm- |
.col-md- |
.col-lg- |
Количество колонок | 12 | |||
Ширина колонки | Авто | ~62px | ~81px | ~97px |
Ширина желоба | 30px (15px с каждой стороны колонки) | |||
Вложенность | Да | |||
Смещения | Да | |||
Порядок колонок | Да |
Используя один набор классов сетки .col-md-*
, вы можете создать
базовую систему сетки, которая начинается сложенной на мобильных устройствах
и планшетах (диапазон от очень маленьких до маленьких) перед тем, как стать
горизонтальной на десктопных (средних) устройствах. Разместите колонки сетки
в любой .row
.
<div class="row">
<div class="col-md-1">.col-md-1</div>
<div class="col-md-1">.col-md-1</div>
<div class="col-md-1">.col-md-1</div>
<div class="col-md-1">.col-md-1</div>
<div class="col-md-1">.col-md-1</div>
<div class="col-md-1">.col-md-1</div>
<div class="col-md-1">.col-md-1</div>
<div class="col-md-1">.col-md-1</div>
<div class="col-md-1">.col-md-1</div>
<div class="col-md-1">.col-md-1</div>
<div class="col-md-1">.col-md-1</div>
<div class="col-md-1">.col-md-1</div>
</div>
<div class="row">
<div class="col-md-8">.col-md-8</div>
<div class="col-md-4">.col-md-4</div>
</div>
<div class="row">
<div class="col-md-4">.col-md-4</div>
<div class="col-md-4">.col-md-4</div>
<div class="col-md-4">.col-md-4</div>
</div>
<div class="row">
<div class="col-md-6">.col-md-6</div>
<div class="col-md-6">.col-md-6</div>
</div>
Превратите любой макет сетки с фиксированной шириной в макет с полной
шириной, изменив ваш самый внешний .container
на
.container-fluid
.
<div class="container-fluid">
<div class="row">...</div>
</div>
Не хотите, чтобы ваши колонки просто складывались на меньших устройствах?
Используйте классы сетки для очень маленьких и средних устройств, добавляя
.col-xs-*
.col-md-*
к вашим колонкам. Смотрите
пример ниже для лучшего понимания того, как это все работает.
<!-- Сложите колонки на мобильных, сделав одну полной ширины, а другую половинной -->
<div class="row">
<div class="col-xs-12 col-md-8">.col-xs-12 .col-md-8</div>
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>
<!-- Колонки начинаются с 50% ширины на мобильных и поднимаются до 33.3% ширины на десктопе -->
<div class="row">
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>
<!-- Колонки всегда 50% ширины, на мобильных и десктопе -->
<div class="row">
<div class="col-xs-6">.col-xs-6</div>
<div class="col-xs-6">.col-xs-6</div>
</div>
Постройте на предыдущем примере, создавая еще более динамичные и мощные
макеты с классами планшетов .col-sm-*
.
<div class="row">
<div class="col-xs-12 col-sm-6 col-md-8">
.col-xs-12 .col-sm-6 .col-md-8
</div>
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>
<div class="row">
<div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>
<div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>
<!-- Опционально: очистите XS колонки, если их контент не совпадает по высоте -->
<div class="clearfix visible-xs-block"></div>
<div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>
</div>
Если более 12 колонок размещены в одной строке, каждая группа дополнительных колонок будет, как единое целое, переноситься на новую строку.
<div class="row">
<div class="col-xs-9">.col-xs-9</div>
<div class="col-xs-4">
.col-xs-4<br />Поскольку 9 + 4 = 13 > 12, этот div шириной в 4 колонки
переносится на новую строку как одно непрерывное целое.
</div>
<div class="col-xs-6">
.col-xs-6<br />Последующие колонки продолжаются вдоль новой строки.
</div>
</div>
С четырьмя уровнями доступных сеток вы обязательно столкнетесь с проблемами,
где на определенных точках останова ваши колонки не очищаются совсем
правильно, так как одна выше другой. Чтобы исправить это, используйте
комбинацию .clearfix
и наших
адаптивных утилитарных классов.
<div class="row">
<div class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</div>
<div class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</div>
<!-- Добавьте дополнительный clearfix только для требуемого viewport -->
<div class="clearfix visible-xs-block"></div>
<div class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</div>
<div class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</div>
</div>
В дополнение к очистке колонок на адаптивных точках останова, вам может понадобиться сбросить смещения, толчки или тяги. Смотрите это в действии в примере сетки.
<div class="row">
<div class="col-sm-5 col-md-6">.col-sm-5 .col-md-6</div>
<div class="col-sm-5 col-sm-offset-2 col-md-6 col-md-offset-0">
.col-sm-5 .col-sm-offset-2 .col-md-6 .col-md-offset-0
</div>
</div>
<div class="row">
<div class="col-sm-6 col-md-5 col-lg-6">.col-sm-6 .col-md-5 .col-lg-6</div>
<div class="col-sm-6 col-md-5 col-md-offset-2 col-lg-6 col-lg-offset-0">
.col-sm-6 .col-md-5 .col-md-offset-2 .col-lg-6 .col-lg-offset-0
</div>
</div>
Перемещайте колонки вправо, используя классы .col-md-offset-*
.
Эти классы увеличивают левый margin колонки на *
колонок.
Например, .col-md-offset-4
перемещает .col-md-4
на
четыре колонки.
<div class="row">
<div class="col-md-4">.col-md-4</div>
<div class="col-md-4 col-md-offset-4">.col-md-4 .col-md-offset-4</div>
</div>
<div class="row">
<div class="col-md-3 col-md-offset-3">.col-md-3 .col-md-offset-3</div>
<div class="col-md-3 col-md-offset-3">.col-md-3 .col-md-offset-3</div>
</div>
<div class="row">
<div class="col-md-6 col-md-offset-3">.col-md-6 .col-md-offset-3</div>
</div>
Вы также можете переопределить смещения из нижних уровней сетки с помощью
классов .col-*-offset-0
.
<div class="row">
<div class="col-xs-6 col-sm-4"></div>
<div class="col-xs-6 col-sm-4"></div>
<div class="col-xs-6 col-xs-offset-3 col-sm-4 col-sm-offset-0"></div>
</div>
Для вложения вашего контента с сеткой по умолчанию добавьте новую
.row
и набор колонок .col-sm-*
внутри существующей
колонки .col-sm-*
. Вложенные строки должны включать набор
колонок, которые в сумме дают 12 или меньше (не требуется, чтобы вы
использовали все 12 доступных колонок).
<div class="row">
<div class="col-sm-9">
Уровень 1: .col-sm-9
<div class="row">
<div class="col-xs-8 col-sm-6">Уровень 2: .col-xs-8 .col-sm-6</div>
<div class="col-xs-4 col-sm-6">Уровень 2: .col-xs-4 .col-sm-6</div>
</div>
</div>
</div>
Легко измените порядок наших встроенных колонок сетки с помощью
модификаторных классов .col-md-push-*
и
.col-md-pull-*
.
<div class="row">
<div class="col-md-9 col-md-push-3">.col-md-9 .col-md-push-3</div>
<div class="col-md-3 col-md-pull-9">.col-md-3 .col-md-pull-9</div>
</div>
В дополнение к предустановленным классам сетки для быстрых макетов, Bootstrap включает переменные и миксины Less для быстрой генерации ваших собственных простых, семантических макетов.
Переменные определяют количество колонок, ширину желоба и точку медиа-запроса, с которой начинать плавающие колонки. Мы используем их для генерации предопределенных классов сетки, документированных выше, а также для пользовательских миксинов, перечисленных ниже.
@grid-columns: 12; @grid-gutter-width: 30px;
@grid-float-breakpoint: 768px;
Миксины используются в сочетании с переменными сетки для генерации семантического CSS для отдельных колонок сетки.
// Создает обертку для серии колонок .make-row(@gutter:
@grid-gutter-width) { // Затем очищает плавающие колонки .clearfix(); @media
(min-width: @screen-sm-min) { margin-left: (@gutter / -2); margin-right:
(@gutter / -2); } // Отрицательный margin вложенных строк для выравнивания
контента колонок .row { margin-left: (@gutter / -2); margin-right: (@gutter /
-2); } } // Генерирует очень маленькие колонки .make-xs-column(@columns;
@gutter: @grid-gutter-width) { position: relative; // Предотвращает
схлопывание колонок при пустоте min-height: 1px; // Внутренний желоб через
padding padding-left: (@gutter / 2); padding-right: (@gutter / 2); //
Вычисляет ширину на основе количества доступных колонок @media (min-width:
@grid-float-breakpoint) { float: left; width: percentage((@columns /
@grid-columns)); } } // Генерирует маленькие колонки .make-sm-column(@columns;
@gutter: @grid-gutter-width) { position: relative; // Предотвращает
схлопывание колонок при пустоте min-height: 1px; // Внутренний желоб через
padding padding-left: (@gutter / 2); padding-right: (@gutter / 2); //
Вычисляет ширину на основе количества доступных колонок @media (min-width:
@screen-sm-min) { float: left; width: percentage((@columns / @grid-columns));
} } // Генерирует смещения маленьких колонок .make-sm-column-offset(@columns)
{ @media (min-width: @screen-sm-min) { margin-left: percentage((@columns /
@grid-columns)); } } .make-sm-column-push(@columns) { @media (min-width:
@screen-sm-min) { left: percentage((@columns / @grid-columns)); } }
.make-sm-column-pull(@columns) { @media (min-width: @screen-sm-min) { right:
percentage((@columns / @grid-columns)); } } // Генерирует средние колонки
.make-md-column(@columns; @gutter: @grid-gutter-width) { position: relative;
// Предотвращает схлопывание колонок при пустоте min-height: 1px; //
Внутренний желоб через padding padding-left: (@gutter / 2); padding-right:
(@gutter / 2); // Вычисляет ширину на основе количества доступных колонок
@media (min-width: @screen-md-min) { float: left; width: percentage((@columns
/ @grid-columns)); } } // Генерирует смещения средних колонок
.make-md-column-offset(@columns) { @media (min-width: @screen-md-min) {
margin-left: percentage((@columns / @grid-columns)); } }
.make-md-column-push(@columns) { @media (min-width: @screen-md-min) { left:
percentage((@columns / @grid-columns)); } } .make-md-column-pull(@columns) {
@media (min-width: @screen-md-min) { right: percentage((@columns /
@grid-columns)); } } // Генерирует большие колонки .make-lg-column(@columns;
@gutter: @grid-gutter-width) { position: relative; // Предотвращает
схлопывание колонок при пустоте min-height: 1px; // Внутренний желоб через
padding padding-left: (@gutter / 2); padding-right: (@gutter / 2); //
Вычисляет ширину на основе количества доступных колонок @media (min-width:
@screen-lg-min) { float: left; width: percentage((@columns / @grid-columns));
} } // Генерирует смещения больших колонок .make-lg-column-offset(@columns) {
@media (min-width: @screen-lg-min) { margin-left: percentage((@columns /
@grid-columns)); } } .make-lg-column-push(@columns) { @media (min-width:
@screen-lg-min) { left: percentage((@columns / @grid-columns)); } }
.make-lg-column-pull(@columns) { @media (min-width: @screen-lg-min) { right:
percentage((@columns / @grid-columns)); } }
Вы можете изменить переменные на ваши собственные пользовательские значения или просто использовать миксины с их значениями по умолчанию. Вот пример использования настроек по умолчанию для создания двухколоночного макета с промежутком между ними.
.wrapper { .make-row(); } .content-main {
.make-lg-column(8); } .content-secondary { .make-lg-column(3);
.make-lg-column-offset(1); }
<div class="wrapper">
<div class="content-main">...</div>
<div class="content-secondary">...</div>
</div>
Доступны все HTML заголовки, от <h1>
до
<h6>
. Также доступны классы .h1
до
.h6
, для случаев, когда вы хотите соответствовать стилю шрифта
заголовка, но все еще хотите, чтобы ваш текст отображался встроенным.
h1. Заголовок Bootstrap |
Полужирный 36px |
h2. Заголовок Bootstrap |
Полужирный 30px |
h3. Заголовок Bootstrap |
Полужирный 24px |
h4. Заголовок Bootstrap |
Полужирный 18px |
h5. Заголовок Bootstrap |
Полужирный 14px |
h6. Заголовок Bootstrap |
Полужирный 12px |
<h1>h1. Заголовок Bootstrap</h1>
<h2>h2. Заголовок Bootstrap</h2>
<h3>h3. Заголовок Bootstrap</h3>
<h4>h4. Заголовок Bootstrap</h4>
<h5>h5. Заголовок Bootstrap</h5>
<h6>h6. Заголовок Bootstrap</h6>
Создайте более светлый, вторичный текст в любом заголовке с помощью
универсального тега <small>
или класса
.small
.
h1. Заголовок Bootstrap Вторичный текст |
h2. Заголовок Bootstrap Вторичный текст |
h3. Заголовок Bootstrap Вторичный текст |
h4. Заголовок Bootstrap Вторичный текст |
h5. Заголовок Bootstrap Вторичный текст |
h6. Заголовок Bootstrap Вторичный текст |
<h1>h1. Заголовок Bootstrap <small>Вторичный текст</small></h1>
<h2>h2. Заголовок Bootstrap <small>Вторичный текст</small></h2>
<h3>h3. Заголовок Bootstrap <small>Вторичный текст</small></h3>
<h4>h4. Заголовок Bootstrap <small>Вторичный текст</small></h4>
<h5>h5. Заголовок Bootstrap <small>Вторичный текст</small></h5>
<h6>h6. Заголовок Bootstrap <small>Вторичный текст</small></h6>
Глобальный размер шрифта по умолчанию в Bootstrap составляет
14px, с line-height
равным
1.428. Это применяется к <body>
и всем
параграфам. Кроме того, <p>
(параграфы) получают нижний
отступ, равный половине их вычисленной высоты строки (10px по умолчанию).
Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam id dolor id nibh ultricies vehicula.
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec ullamcorper nulla non metus auctor fringilla. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla.
Maecenas sed diam eget risus varius blandit sit amet non magna. Donec id elit non mi porta gravida at eget metus. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit.
<p>...</p>
Сделайте параграф выделяющимся, добавив .lead
.
Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Duis mollis, est non commodo luctus.
<p class="lead">...</p>
Типографическая шкала основана на двух переменных Less в
variables.less: @font-size-base
и
@line-height-base
. Первая - это базовый размер шрифта,
используемый повсюду, а вторая - базовая высота строки. Мы используем эти
переменные и простую математику для создания отступов, полей и высот строк
всего нашего текста и многого другого. Настройте их, и Bootstrap
адаптируется.
Для выделения фрагмента текста из-за его релевантности в другом контексте
используйте тег <mark>
.
Вы можете использовать тег mark для выделения текста.
Вы можете использовать тег mark для
<mark>выделения</mark> текста.
Для обозначения блоков текста, которые были удалены, используйте тег
<del>
.
Эта строка текста предназначена для обработки как удаленный текст.
<del>Эта строка текста предназначена для обработки как удаленный текст.</del>
Для обозначения блоков текста, которые больше не релевантны, используйте тег
<s>
.
Эта строка текста предназначена для обработки как больше не точная.
<s>Эта строка текста предназначена для обработки как больше не точная.</s>
Для обозначения дополнений к документу используйте тег
<ins>
.
Эта строка текста предназначена для обработки как дополнение к документу.
<ins
>Эта строка текста предназначена для обработки как дополнение к
документу.</ins
>
Для подчеркивания текста используйте тег <u>
.
Эта строка текста будет отображаться как подчеркнутая
<u>Эта строка текста будет отображаться как подчеркнутая</u>
Используйте стандартные теги выделения HTML с легкими стилями.
Для снижения акцента на встроенном или блочном тексте используйте тег
<small>
для установки текста в 85% от размера родителя.
Элементы заголовков получают свой собственный font-size
для
вложенных элементов <small>
.
Вы также можете использовать встроенный элемент с .small
вместо
любого <small>
.
Эта строка текста предназначена для обработки как мелкий шрифт.
<small>Эта строка текста предназначена для обработки как мелкий шрифт.</small>
Для выделения фрагмента текста более тяжелым весом шрифта.
Следующий фрагмент текста отображается как жирный текст.
<strong>отображается как жирный текст</strong>
Для выделения фрагмента текста курсивом.
Следующий фрагмент текста отображается как курсивный текст.
<em>отображается как курсивный текст</em>
Не стесняйтесь использовать <b>
и
<i>
в HTML5. <b>
предназначен для
выделения слов или фраз без передачи дополнительной важности, в то время
как <i>
в основном для голоса, технических терминов и
т.д.
Легко перевыравнивайте текст к компонентам с помощью классов выравнивания текста.
Текст, выровненный по левому краю.
Текст, выровненный по центру.
Текст, выровненный по правому краю.
Выровненный по ширине текст.
Текст без переноса.
<p class="text-left">Текст, выровненный по левому краю.</p>
<p class="text-center">Текст, выровненный по центру.</p>
<p class="text-right">Текст, выровненный по правому краю.</p>
<p class="text-justify">Выровненный по ширине текст.</p>
<p class="text-nowrap">Текст без переноса.</p>
Трансформируйте текст в компонентах с помощью классов капитализации текста.
Текст в нижнем регистре.
Текст в верхнем регистре.
Текст с заглавными буквами.
<p class="text-lowercase">Текст в нижнем регистре.</p>
<p class="text-uppercase">Текст в верхнем регистре.</p>
<p class="text-capitalize">Текст с заглавными буквами.</p>
Стилизованная реализация HTML элемента <abbr>
для
аббревиатур и акронимов, чтобы показать расширенную версию при наведении.
Аббревиатуры с атрибутом title
имеют светлую пунктирную нижнюю
границу и курсор помощи при наведении, предоставляя дополнительный контекст
при наведении и пользователям вспомогательных технологий.
Аббревиатура слова атрибут - это attr.
<abbr title="атрибут">attr</abbr>
Добавьте .initialism
к аббревиатуре для немного меньшего
размера шрифта.
HTML - это лучшее изобретение со времен нарезанного хлеба.
<abbr title="HyperText Markup Language" class="initialism">HTML</abbr>
Представляйте контактную информацию для ближайшего предка или всего тела
работы. Сохраняйте форматирование, заканчивая все строки
<br>
.
<address>
<strong>Twitter, Inc.</strong><br />
1355 Market Street, Suite 900<br />
San Francisco, CA 94103<br />
<abbr title="Телефон">Т:</abbr> (123) 456-7890
</address>
<address>
<strong>Полное имя</strong><br />
<a href="mailto:#">first.last@example.com</a>
</address>
Для цитирования блоков контента из другого источника в вашем документе.
Оберните <blockquote>
вокруг любого
HTML как цитату. Для прямых
цитат мы рекомендуем <p>
.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.
<blockquote>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere
erat a ante.
</p>
</blockquote>
Изменения стиля и контента для простых вариаций стандартной
<blockquote>
.
Добавьте <footer>
для идентификации источника. Оберните
название исходной работы в <cite>
.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.
<blockquote>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere
erat a ante.
</p>
<footer>
Кто-то известный в
<cite title="Название источника">Название источника</cite>
</footer>
</blockquote>
Добавьте .blockquote-reverse
для блокцитаты с контентом,
выровненным по правому краю.
<blockquote class="blockquote-reverse">...</blockquote>
Список элементов, в котором порядок не имеет явного значения.
<ul>
<li>...</li>
</ul>
Список элементов, в котором порядок имеет явное значение.
<ol>
<li>...</li>
</ol>
Удалите стандартный list-style
и левый отступ на элементах
списка (только непосредственные дочерние элементы).
Это применяется только к непосредственным дочерним элементам
списка, что означает, что вам нужно будет добавить класс для любых вложенных
списков также.
<ul class="list-unstyled">
<li>...</li>
</ul>
Разместите все элементы списка на одной строке с
display: inline-block;
и некоторым легким отступом.
<ul class="list-inline">
<li>...</li>
</ul>
Список терминов с их связанными описаниями.
<dl>
<dt>...</dt>
<dd>...</dd>
</dl>
Сделайте термины и описания в <dl>
выровненными бок о
бок. Начинается сложенными, как стандартные <dl>
, но
когда навигационная панель расширяется, то же самое делают и эти.
<dl class="dl-horizontal">
<dt>...</dt>
<dd>...</dd>
</dl>
Горизонтальные списки описаний будут усекать термины, которые слишком
длинные, чтобы поместиться в левой колонке, с помощью
text-overflow
. В более узких viewport они изменятся на
стандартную сложенную компоновку.
Оберните встроенные фрагменты кода в <code>
.
<section>
должен быть обернут как встроенный.
Например, <code><section></code> должен быть
обернут как встроенный.
Используйте <kbd>
для обозначения ввода, который обычно
вводится через клавиатуру.
Для переключения директорий введите <kbd>cd</kbd> с
последующим именем директории.<br />
Для редактирования настроек нажмите <kbd><kbd>ctrl</kbd> + <kbd>,</kbd></kbd>
Используйте <pre>
для нескольких строк кода. Обязательно
экранируйте любые угловые скобки в коде для правильного отображения.
<p>Пример текста здесь...</p>
<pre><p>Пример текста здесь...</p></pre>
Вы можете опционально добавить класс .pre-scrollable
, который
установит максимальную высоту 350px и предоставит вертикальную полосу
прокрутки.
Для обозначения переменных используйте тег <var>
.
y = mx + b
<var>y</var> = <var>m</var><var>x</var> + <var>b</var>
Для обозначения блоков примера вывода из программы используйте тег
<samp>
.
Этот текст предназначен для обработки как пример вывода из компьютерной программы.
<samp
>Этот текст предназначен для обработки как пример вывода из компьютерной
программы.</samp
>
Для базового стилирования – легкие отступы и только горизонтальные
разделители – добавьте базовый класс .table
к любой
<table>
. Это может показаться супер избыточным, но
учитывая широкое использование таблиц для других плагинов, таких как
календари и селекторы дат, мы решили изолировать наши пользовательские стили
таблиц.
# | Имя | Фамилия | Имя пользователя |
---|---|---|---|
1 | Марк | Отто | @mdo |
2 | Джейкоб | Торнтон | @fat |
3 | Ларри | Птица |
<table class="table">
...
</table>
Используйте .table-striped
для добавления зебровой полосатости
к любым строкам таблицы в <tbody>
.
Полосатые таблицы стилизуются через CSS селектор :nth-child
,
который недоступен в Internet Explorer 8.
# | Имя | Фамилия | Имя пользователя |
---|---|---|---|
1 | Марк | Отто | @mdo |
2 | Джейкоб | Торнтон | @fat |
3 | Ларри | Птица |
<table class="table table-striped">
...
</table>
Добавьте .table-bordered
для границ со всех сторон таблицы и
ячеек.
# | Имя | Фамилия | Имя пользователя |
---|---|---|---|
1 | Марк | Отто | @mdo |
2 | Джейкоб | Торнтон | @fat |
3 | Ларри | Птица |
<table class="table table-bordered">
...
</table>
Добавьте .table-hover
для включения состояния наведения на
строках таблицы в <tbody>
.
# | Имя | Фамилия | Имя пользователя |
---|---|---|---|
1 | Марк | Отто | @mdo |
2 | Джейкоб | Торнтон | @fat |
3 | Ларри | Птица |
<table class="table table-hover">
...
</table>
Добавьте .table-condensed
для создания более компактных таблиц,
сократив отступы ячеек вдвое.
# | Имя | Фамилия | Имя пользователя |
---|---|---|---|
1 | Марк | Отто | @mdo |
2 | Джейкоб | Торнтон | @fat |
3 | Ларри Птица |
<table class="table table-condensed">
...
</table>
Используйте контекстные классы для окрашивания строк таблицы или отдельных ячеек.
Класс | Описание |
---|---|
.active
|
Применяет цвет наведения к определенной строке или ячейке |
.success
|
Указывает на успешное или положительное действие |
.info
|
Указывает на нейтральное информативное изменение или действие |
.warning
|
Указывает на предупреждение, которое может потребовать внимания |
.danger
|
Указывает на опасное или потенциально отрицательное действие |
# | Заголовок столбца | Заголовок столбца | Заголовок столбца |
---|---|---|---|
1 | Содержимое столбца | Содержимое столбца | Содержимое столбца |
2 | Содержимое столбца | Содержимое столбца | Содержимое столбца |
3 | Содержимое столбца | Содержимое столбца | Содержимое столбца |
4 | Содержимое столбца | Содержимое столбца | Содержимое столбца |
5 | Содержимое столбца | Содержимое столбца | Содержимое столбца |
6 | Содержимое столбца | Содержимое столбца | Содержимое столбца |
7 | Содержимое столбца | Содержимое столбца | Содержимое столбца |
8 | Содержимое столбца | Содержимое столбца | Содержимое столбца |
9 | Содержимое столбца | Содержимое столбца | Содержимое столбца |
<!-- На строках -->
<tr class="active">
...
</tr>
<tr class="success">
...
</tr>
<tr class="warning">
...
</tr>
<tr class="danger">
...
</tr>
<tr class="info">
...
</tr>
<!-- На ячейках (`td` или `th`) -->
<tr>
<td class="active">...</td>
<td class="success">...</td>
<td class="warning">...</td>
<td class="danger">...</td>
<td class="info">...</td>
</tr>
Использование цвета для добавления смысла к строке таблицы или отдельной
ячейке обеспечивает только визуальную индикацию, которая не будет передана
пользователям вспомогательных технологий – таких как программы чтения с
экрана. Убедитесь, что информация, обозначенная цветом, либо очевидна из
самого содержимого (видимый текст в соответствующей строке/ячейке
таблицы), либо включена через альтернативные средства, такие как
дополнительный текст, скрытый с помощью класса .sr-only
.
Создайте адаптивные таблицы, обернув любую .table
в
.table-responsive
, чтобы сделать их прокручиваемыми по
горизонтали на маленьких устройствах (менее 768px). При просмотре на
чем-либо шире 768px вы не увидите никакой разницы в этих таблицах.
Адаптивные таблицы используют overflow-y: hidden
, который
обрезает любой контент, выходящий за нижние или верхние края таблицы. В
частности, это может обрезать выпадающие меню и другие сторонние виджеты.
Firefox имеет некоторое неудобное стилизование fieldset, связанное с
width
, которое мешает адаптивной таблице. Это нельзя
переопределить без Firefox-специфичного хака, который мы
не предоставляем в Bootstrap:
@-moz-document url-prefix() { fieldset { display:
table-cell; } }
Для получения дополнительной информации прочитайте этот ответ на Stack Overflow.
# | Заголовок таблицы | Заголовок таблицы | Заголовок таблицы | Заголовок таблицы | Заголовок таблицы | Заголовок таблицы |
---|---|---|---|---|---|---|
1 | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы |
2 | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы |
3 | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы |
# | Заголовок таблицы | Заголовок таблицы | Заголовок таблицы | Заголовок таблицы | Заголовок таблицы | Заголовок таблицы |
---|---|---|---|---|---|---|
1 | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы |
2 | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы |
3 | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы |
<div class="table-responsive">
<table class="table">
...
</table>
</div>
Отдельные элементы управления формами автоматически получают некоторую
глобальную стилизацию. Все текстовые элементы <input>
,
<textarea>
и <select>
с
.form-control
по умолчанию установлены в
width: 100%;
. Оберните метки и элементы управления в
.form-group
для оптимального расстояния.
<form>
<div class="form-group">
<label for="exampleInputEmail1">Email адрес</label>
<input
type="email"
class="form-control"
id="exampleInputEmail1"
placeholder="Email"
/>
</div>
<div class="form-group">
<label for="exampleInputPassword1">Пароль</label>
<input
type="password"
class="form-control"
id="exampleInputPassword1"
placeholder="Пароль"
/>
</div>
<div class="form-group">
<label for="exampleInputFile">Ввод файла</label>
<input type="file" id="exampleInputFile" />
<p class="help-block">Пример блочного текста помощи здесь.</p>
</div>
<div class="checkbox">
<label> <input type="checkbox" /> Отметьте меня </label>
</div>
<button type="submit" class="btn btn-default">Отправить</button>
</form>
Не смешивайте группы форм напрямую с группами ввода. Вместо этого вложите группу ввода внутрь группы форм.
Добавьте .form-inline
к вашей форме (которая не обязательно
должна быть <form>
) для выровненных по левому краю и
встроенно-блочных элементов управления.
Это применяется только к формам в viewport, которые имеют ширину не менее
768px.
Входы и селекты имеют width: 100%;
примененный по умолчанию в
Bootstrap. Во встроенных формах мы сбрасываем это в
width: auto;
, чтобы несколько элементов управления могли
находиться на одной строке. В зависимости от вашего макета могут
потребоваться дополнительные пользовательские ширины.
Программы чтения с экрана будут иметь проблемы с вашими формами, если вы
не включите метку для каждого ввода. Для этих встроенных форм вы можете
скрыть метки, используя класс .sr-only
. Есть дальнейшие
альтернативные методы предоставления метки для вспомогательных технологий,
такие как атрибуты aria-label
,
aria-labelledby
или title
. Если ни один из них
не присутствует, программы чтения с экрана могут прибегнуть к
использованию атрибута placeholder
, если он присутствует, но
обратите внимание, что использование placeholder
в качестве
замены других методов маркировки не рекомендуется.
<form class="form-inline">
<div class="form-group">
<label for="exampleInputName2">Имя</label>
<input
type="text"
class="form-control"
id="exampleInputName2"
placeholder="Джейн Доу"
/>
</div>
<div class="form-group">
<label for="exampleInputEmail2">Email</label>
<input
type="email"
class="form-control"
id="exampleInputEmail2"
placeholder="jane.doe@example.com"
/>
</div>
<button type="submit" class="btn btn-default">Отправить приглашение</button>
</form>
<form class="form-inline">
<div class="form-group">
<label class="sr-only" for="exampleInputEmail3">Email адрес</label>
<input
type="email"
class="form-control"
id="exampleInputEmail3"
placeholder="Email"
/>
</div>
<div class="form-group">
<label class="sr-only" for="exampleInputPassword3">Пароль</label>
<input
type="password"
class="form-control"
id="exampleInputPassword3"
placeholder="Пароль"
/>
</div>
<div class="checkbox">
<label> <input type="checkbox" /> Запомнить меня </label>
</div>
<button type="submit" class="btn btn-default">Войти</button>
</form>
<form class="form-inline">
<div class="form-group">
<label class="sr-only" for="exampleInputAmount">Сумма (в долларах)</label>
<div class="input-group">
<div class="input-group-addon">$</div>
<input
type="text"
class="form-control"
id="exampleInputAmount"
placeholder="Сумма"
/>
<div class="input-group-addon">.00</div>
</div>
</div>
<button type="submit" class="btn btn-primary">Перевести деньги</button>
</form>
Используйте предопределенные классы сетки Bootstrap для выравнивания меток и
групп элементов управления формой в горизонтальном макете, добавив
.form-horizontal
к форме (которая не обязательно должна быть
<form>
). Это изменяет .form-group
s, чтобы
они вели себя как строки сетки, поэтому нет необходимости в
.row
.
<form class="form-horizontal">
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">Email</label>
<div class="col-sm-10">
<input
type="email"
class="form-control"
id="inputEmail3"
placeholder="Email"
/>
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">Пароль</label>
<div class="col-sm-10">
<input
type="password"
class="form-control"
id="inputPassword3"
placeholder="Пароль"
/>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="checkbox">
<label> <input type="checkbox" /> Запомнить меня </label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">Войти</button>
</div>
</div>
</form>
Примеры стандартных элементов управления, поддерживаемых в примере формы.
Самый распространенный элемент управления формы, текстовые поля ввода.
Поддерживает все HTML5 типы: text
, password
,
datetime
, datetime-local
, date
,
month
, time
, week
,
number
, email
, url
,
search
, tel
, и color
.
Входы будут полностью стилизованы только в том случае, если их
type
правильно объявлен.
<input type="text" class="form-control" placeholder="Текстовый ввод" />
Чтобы добавить интегрированный текст или кнопки перед и/или после любого
текстового <input>
,
проверьте компонент группы ввода.
Элемент управления формы, поддерживающий несколько строк текста. Измените
атрибут rows
, если необходимо.
<textarea class="form-control" rows="3"></textarea>
Чекбоксы используются для выбора одного или нескольких вариантов из списка, а радиокнопки — для выбора одного варианта из множества.
Поддерживаются отключенные чекбоксы и радиокнопки, но для предоставления
"недоступного" курсора при наведении на родительский
<label>
, вам потребуется добавить класс
.disabled
к родительскому .radio
,
.radio-inline
, .checkbox
или
.checkbox-inline
.
<div class="checkbox">
<label>
<input type="checkbox" value="" />
Опция один и это и это—убедитесь, что вы включили, почему это так
здорово
</label>
</div>
<div class="checkbox disabled">
<label>
<input type="checkbox" value="" disabled />
Опция два отключена
</label>
</div>
<div class="radio">
<label>
<input
type="radio"
name="optionsRadios"
id="optionsRadios1"
value="option1"
checked
/>
Опция один и это и это—убедитесь, что вы включили, почему это так
здорово
</label>
</div>
<div class="radio">
<label>
<input
type="radio"
name="optionsRadios"
id="optionsRadios2"
value="option2"
/>
Опция два может быть чем-то еще, и выбор этого отключит опцию один
</label>
</div>
<div class="radio disabled">
<label>
<input
type="radio"
name="optionsRadios"
id="optionsRadios3"
value="option3"
disabled
/>
Опция три отключена
</label>
</div>
Используйте .checkbox-inline
или
.radio-inline
классы на серии чекбоксов или радиокнопок для
элементов управления, которые появляются на одной линии.
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox1" value="option1" /> 1
</label>
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox2" value="option2" /> 2
</label>
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox3" value="option3" /> 3
</label>
<label class="radio-inline">
<input
type="radio"
name="inlineRadioOptions"
id="inlineRadio1"
value="option1"
/>
1
</label>
<label class="radio-inline">
<input
type="radio"
name="inlineRadioOptions"
id="inlineRadio2"
value="option2"
/>
2
</label>
<label class="radio-inline">
<input
type="radio"
name="inlineRadioOptions"
id="inlineRadio3"
value="option3"
/>
3
</label>
Если у вас нет текста внутри <label>
, элемент ввода
располагается так, как ожидается.
В настоящее время работает только на невстроенных чекбоксах и
радиокнопках.
Не забудьте все еще предоставить какой-то текст метки для вспомогательных
технологий (например, используя aria-label
).
<div class="checkbox">
<label>
<input
type="checkbox"
id="blankCheckbox"
value="option1"
aria-label="..."
/>
</label>
</div>
<div class="radio">
<label>
<input
type="radio"
name="blankRadio"
id="blankRadio1"
value="option1"
aria-label="..."
/>
</label>
</div>
Обратите внимание, что многие встроенные меню-селекты (особенно в Safari и
Chrome) имеют закругленные углы, которые не могут быть изменены через
свойства border-radius
.
<select class="form-control">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
Для элементов <select>
с атрибутом
multiple
показываются несколько опций по умолчанию.
<select multiple class="form-control">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
Когда вам нужно разместить простой текст рядом с меткой формы в форме,
используйте .form-control-static
на <p>
.
<form class="form-horizontal">
<div class="form-group">
<label class="col-sm-2 control-label">Email</label>
<div class="col-sm-10">
<p class="form-control-static">email@example.com</p>
</div>
</div>
<div class="form-group">
<label for="inputPassword" class="col-sm-2 control-label">Пароль</label>
<div class="col-sm-10">
<input
type="password"
class="form-control"
id="inputPassword"
placeholder="Пароль"
/>
</div>
</div>
</form>
<form class="form-inline">
<div class="form-group">
<label class="sr-only">Email</label>
<p class="form-control-static">email@example.com</p>
</div>
<div class="form-group">
<label for="inputPassword2" class="sr-only">Пароль</label>
<input
type="password"
class="form-control"
id="inputPassword2"
placeholder="Пароль"
/>
</div>
<button type="submit" class="btn btn-default">
Подтвердить идентификацию
</button>
</form>
Мы удаляем стандартные стили outline
для некоторых элементов
управления формы и применяем box-shadow
вместо него для
:focus
.
:focus
состояния
Вышеприведенный пример ввода использует настраиваемые стили в нашей
документации для демонстрации состояния :focus
на
.form-control
.
Добавьте атрибут disabled
к вводу, чтобы предотвратить
взаимодействие пользователя. Отключенные входы выглядят светлее и добавляют
not-allowed
курсор.
<input
class="form-control"
id="disabledInput"
type="text"
placeholder="Отключенный ввод здесь..."
disabled
/>
Добавьте атрибут disabled
к <fieldset>
,
чтобы отключить все элементы управления внутри
<fieldset>
одновременно.
<a>
По умолчанию браузеры будут обрабатывать все встроенные элементы
управления формы (<input>
,
<select>
и <button>
элементы) внутри
<fieldset disabled>
как отключенные, предотвращая как
клавиатурные, так и мышиные взаимодействия с ними. Однако, если ваша форма
также включает элементы <a ... class="btn btn-*">
, эти
элементы будут иметь только стиль pointer-events: none
. Как
отмечено в разделе о
состоянии отключения для кнопок (и
особенно в подразделе для элементов <a>
), это свойство
CSS еще не стандартизировано и не полностью поддерживается в Opera 18 и
ниже, или в Internet Explorer 11, и не предотвратит фокусировку или
активацию этих ссылок клавиатурными пользователями. Поэтому, чтобы быть
безопасным, используйте пользовательский JavaScript для отключения таких
ссылок.
Хотя Bootstrap применяет эти стили во всех браузерах, Internet Explorer 11
и ниже полностью не поддерживают атрибут disabled
на
<fieldset>
. Используйте пользовательский JavaScript для
отключения <fieldset>
в этих браузерах.
<form>
<fieldset disabled>
<div class="form-group">
<label for="disabledTextInput">Отключенный ввод</label>
<input
type="text"
id="disabledTextInput"
class="form-control"
placeholder="Отключенный ввод"
/>
</div>
<div class="form-group">
<label for="disabledSelect">Отключенное меню выбора</label>
<select id="disabledSelect" class="form-control">
<option>Отключенный выбор</option>
</select>
</div>
<div class="checkbox">
<label> <input type="checkbox" /> Не могу отметить это </label>
</div>
<button type="submit" class="btn btn-primary">Отправить</button>
</fieldset>
</form>
Добавьте атрибут readonly
к вводу, чтобы предотвратить
изменение значения ввода. Входы только для чтения выглядят светлее (так же,
как и отключенные входы), но сохраняют стандартный курсор.
<input
class="form-control"
type="text"
placeholder="Текст для чтения здесь…"
readonly
/>
Блочный уровень текста помощи для элементов управления формы.
Текст помощи должен быть явно связан с элементом управления формы, к
которому он относится, используя атрибут aria-describedby
.
Это обеспечит, что вспомогательные технологии – такие как экранные дикторы
– объявят этот текст помощи, когда пользователь фокусируется или вводит в
элемент управления.
<label class="sr-only" for="inputHelpBlock">Ввод с текстом помощи</label>
<input
type="text"
id="inputHelpBlock"
class="form-control"
aria-describedby="helpBlock"
/>
...
<span id="helpBlock" class="help-block"
>Блок текста помощи, который переносится на новую строку и может выходить за
пределы одной строки.</span
>
Bootstrap включает стили валидации для состояний ошибки, предупреждения и
успеха на элементах управления формы. Чтобы использовать, добавьте
.has-warning
, .has-error
или
.has-success
к родительскому элементу. Любые
.control-label
, .form-control
и
.help-block
в этом элементе получат стили валидации.
Использование этих стилей валидации для обозначения состояния элемента управления формы предоставляет только визуальное, цветовое указание, которое не будет передано вспомогательным технологиям – таким как экранные дикторы – или пользователям с цветовой слепотой.
Убедитесь, что альтернативное указание состояния также предоставляется.
Например, вы можете включить подсказку о состоянии в тексте
<label>
самого элемента управления (как в следующем
примере кода), включить Глификон (с
соответствующим альтернативным текстом, используя класс
.sr-only
- см. примеры
Глификонов), или
предоставив дополнительный блок
текста помощи. В частности для
вспомогательных технологий, невалидные элементы управления формы также могут
быть назначены атрибуту aria-invalid="true"
.
<div class="form-group has-success">
<label class="control-label" for="inputSuccess1">Ввод с успехом</label>
<input
type="text"
class="form-control"
id="inputSuccess1"
aria-describedby="helpBlock2"
/>
<span id="helpBlock2" class="help-block"
>Блок текста помощи, который переносится на новую строку и может выходить за
пределы одной строки.</span
>
</div>
<div class="form-group has-warning">
<label class="control-label" for="inputWarning1"
>Ввод с предупреждением</label
>
<input type="text" class="form-control" id="inputWarning1" />
</div>
<div class="form-group has-error">
<label class="control-label" for="inputError1">Ввод с ошибкой</label>
<input type="text" class="form-control" id="inputError1" />
</div>
<div class="has-success">
<div class="checkbox">
<label>
<input type="checkbox" id="checkboxSuccess" value="option1" />
Чекбокс с успехом
</label>
</div>
</div>
<div class="has-warning">
<div class="checkbox">
<label>
<input type="checkbox" id="checkboxWarning" value="option1" />
Чекбокс с предупреждением
</label>
</div>
</div>
<div class="has-error">
<div class="checkbox">
<label>
<input type="checkbox" id="checkboxError" value="option1" />
Чекбокс с ошибкой
</label>
</div>
</div>
Вы также можете добавить опциональные иконки обратной связи с добавлением
.has-feedback
и правой иконки.
Иконки обратной связи работают только с текстовыми
<input class="form-control">
элементами.
Необходимое позиционирование иконки обратной связи требуется для входов без
метки и для групп ввода с
дополнением справа. Вы сильно рекомендуем предоставить метки для всех входов
из-за причин доступности. Если вы хотите предотвратить отображение меток,
скрывайте их с помощью класса .sr-only
. Если вы должны сделать
это без меток, отрегулируйте значение top
иконки обратной
связи. Для групп ввода отрегулируйте значение right
на
подходящее пиксельное значение в зависимости от ширины вашего дополнения.
Чтобы обеспечить, что вспомогательные технологии – такие как экранные
дикторы – правильно передают значение иконки, дополнительный скрытый текст
должен быть включен с помощью класса .sr-only
и явно связан с
элементом управления формы, используя aria-describedby
.
Альтернативно, гарантируйте, что значение (например, тот факт, что есть
предупреждение для определенного поля ввода текста) передается каким-либо
другим способом, например, изменением текста соответствующего
<label>
в форме.
Хотя следующие примеры уже упоминают состояние валидации своих
соответствующих элементов управления в тексте <label>
,
этот метод (использование .sr-only
текста и
aria-describedby
) был включен для иллюстративных целей.
<div class="form-group has-success has-feedback">
<label class="control-label" for="inputSuccess2">Ввод с успехом</label>
<input
type="text"
class="form-control"
id="inputSuccess2"
aria-describedby="inputSuccess2Status"
/>
<span
class="glyphicon glyphicon-ok form-control-feedback"
aria-hidden="true"
></span>
<span id="inputSuccess2Status" class="sr-only">(успех)</span>
</div>
<div class="form-group has-warning has-feedback">
<label class="control-label" for="inputWarning2"
>Ввод с предупреждением</label
>
<input
type="text"
class="form-control"
id="inputWarning2"
aria-describedby="inputWarning2Status"
/>
<span
class="glyphicon glyphicon-warning-sign form-control-feedback"
aria-hidden="true"
></span>
<span id="inputWarning2Status" class="sr-only">(предупреждение)</span>
</div>
<div class="form-group has-error has-feedback">
<label class="control-label" for="inputError2">Ввод с ошибкой</label>
<input
type="text"
class="form-control"
id="inputError2"
aria-describedby="inputError2Status"
/>
<span
class="glyphicon glyphicon-remove form-control-feedback"
aria-hidden="true"
></span>
<span id="inputError2Status" class="sr-only">(ошибка)</span>
</div>
<div class="form-group has-success has-feedback">
<label class="control-label" for="inputGroupSuccess1"
>Группа ввода с успехом</label
>
<div class="input-group">
<span class="input-group-addon">@</span>
<input
type="text"
class="form-control"
id="inputGroupSuccess1"
aria-describedby="inputGroupSuccess1Status"
/>
</div>
<span
class="glyphicon glyphicon-ok form-control-feedback"
aria-hidden="true"
></span>
<span id="inputGroupSuccess1Status" class="sr-only">(успех)</span>
</div>
<form class="form-horizontal">
<div class="form-group has-success has-feedback">
<label class="control-label col-sm-3" for="inputSuccess3"
>Ввод с успехом</label
>
<div class="col-sm-9">
<input
type="text"
class="form-control"
id="inputSuccess3"
aria-describedby="inputSuccess3Status"
/>
<span
class="glyphicon glyphicon-ok form-control-feedback"
aria-hidden="true"
></span>
<span id="inputSuccess3Status" class="sr-only">(успех)</span>
</div>
</div>
<div class="form-group has-success has-feedback">
<label class="control-label col-sm-3" for="inputGroupSuccess2"
>Группа ввода с успехом</label
>
<div class="col-sm-9">
<div class="input-group">
<span class="input-group-addon">@</span>
<input
type="text"
class="form-control"
id="inputGroupSuccess2"
aria-describedby="inputGroupSuccess2Status"
/>
</div>
<span
class="glyphicon glyphicon-ok form-control-feedback"
aria-hidden="true"
></span>
<span id="inputGroupSuccess2Status" class="sr-only">(успех)</span>
</div>
</div>
</form>
<form class="form-inline">
<div class="form-group has-success has-feedback">
<label class="control-label" for="inputSuccess4">Ввод с успехом</label>
<input
type="text"
class="form-control"
id="inputSuccess4"
aria-describedby="inputSuccess4Status"
/>
<span
class="glyphicon glyphicon-ok form-control-feedback"
aria-hidden="true"
></span>
<span id="inputSuccess4Status" class="sr-only">(успех)</span>
</div>
</form>
<form class="form-inline">
<div class="form-group has-success has-feedback">
<label class="control-label" for="inputGroupSuccess3"
>Группа ввода с успехом</label
>
<div class="input-group">
<span class="input-group-addon">@</span>
<input
type="text"
class="form-control"
id="inputGroupSuccess3"
aria-describedby="inputGroupSuccess3Status"
/>
</div>
<span
class="glyphicon glyphicon-ok form-control-feedback"
aria-hidden="true"
></span>
<span id="inputGroupSuccess3Status" class="sr-only">(успех)</span>
</div>
</form>
.sr-only
метками
Если вы используете класс .sr-only
для скрытия
<label>
элемента управления формы (вместо использования
других методов маркировки, таких как атрибут aria-label
),
Bootstrap автоматически отрегулирует положение иконки после ее добавления.
<div class="form-group has-success has-feedback">
<label class="control-label sr-only" for="inputSuccess5">Скрытая метка</label>
<input
type="text"
class="form-control"
id="inputSuccess5"
aria-describedby="inputSuccess5Status"
/>
<span
class="glyphicon glyphicon-ok form-control-feedback"
aria-hidden="true"
></span>
<span id="inputSuccess5Status" class="sr-only">(успех)</span>
</div>
<div class="form-group has-success has-feedback">
<label class="control-label sr-only" for="inputGroupSuccess4"
>Группа ввода с успехом</label
>
<div class="input-group">
<span class="input-group-addon">@</span>
<input
type="text"
class="form-control"
id="inputGroupSuccess4"
aria-describedby="inputGroupSuccess4Status"
/>
</div>
<span
class="glyphicon glyphicon-ok form-control-feedback"
aria-hidden="true"
></span>
<span id="inputGroupSuccess4Status" class="sr-only">(успех)</span>
</div>
Устанавливайте высоту с помощью классов, таких как .input-lg
, и
устанавливайте ширину с помощью классов сетки столбцов, таких как
.col-lg-*
.
Создавайте более высокие или более короткие элементы управления формы, которые соответствуют размерам кнопок.
<input class="form-control input-lg" type="text" placeholder=".input-lg" />
<input class="form-control" type="text" placeholder="По умолчанию" />
<input class="form-control input-sm" type="text" placeholder=".input-sm" />
<select class="form-control input-lg">
...
</select>
<select class="form-control">
...
</select>
<select class="form-control input-sm">
...
</select>
Быстро устанавливайте размеры меток и элементов управления в
.form-horizontal
с помощью .form-group-lg
или
.form-group-sm
.
<form class="form-horizontal">
<div class="form-group form-group-lg">
<label class="col-sm-2 control-label" for="formGroupInputLarge"
>Большая метка</label
>
<div class="col-sm-10">
<input
class="form-control"
type="text"
id="formGroupInputLarge"
placeholder="Большой ввод"
/>
</div>
</div>
<div class="form-group form-group-sm">
<label class="col-sm-2 control-label" for="formGroupInputSmall"
>Маленькая метка</label
>
<div class="col-sm-10">
<input
class="form-control"
type="text"
id="formGroupInputSmall"
placeholder="Маленький ввод"
/>
</div>
</div>
</form>
Оберните входы в столбцы сетки, или любой другой пользовательский родительский элемент, чтобы легко соблюдать желаемые ширины.
<div class="row">
<div class="col-xs-2">
<input type="text" class="form-control" placeholder=".col-xs-2" />
</div>
<div class="col-xs-3">
<input type="text" class="form-control" placeholder=".col-xs-3" />
</div>
<div class="col-xs-4">
<input type="text" class="form-control" placeholder=".col-xs-4" />
</div>
</div>
Используйте классы кнопок на элементе <a>
,
<button>
или <input>
.
<a class="btn btn-default" href="#" role="button">Ссылка</a>
<button class="btn btn-default" type="submit">Кнопка</button>
<input class="btn btn-default" type="button" value="Ввод" />
<input class="btn btn-default" type="submit" value="Отправить" />
Хотя классы кнопок могут использоваться на элементах
<a>
и <button>
, только элементы
<button>
поддерживаются в наших компонентах навигации и
навигационной панели.
Если элементы <a>
используются для действия как кнопки
– запуска внутристраничной функциональности, а не навигации к другому
документу или разделу в текущей странице – они также должны иметь
соответствующий role="button"
.
Как лучшая практика,
мы настоятельно рекомендуем использовать элемент
<button>
всякий раз, когда это возможно, чтобы обеспечить соответствующий кроссбраузерный рендеринг.
Среди прочего, есть
ошибка в Firefox <30, которая не позволяет нам установить line-height
кнопок на
основе <input>
, что приводит к тому, что они не точно
соответствуют высоте других кнопок в Firefox.
Используйте любой из доступных классов кнопок для быстрого создания стилизованной кнопки.
<!-- Стандартная кнопка -->
<button type="button" class="btn btn-default">По умолчанию</button>
<!-- Обеспечивает дополнительный визуальный вес и идентифицирует основное действие в наборе кнопок -->
<button type="button" class="btn btn-primary">Основная</button>
<!-- Указывает на успешное или положительное действие -->
<button type="button" class="btn btn-success">Успех</button>
<!-- Контекстная кнопка для информационных сообщений оповещений -->
<button type="button" class="btn btn-info">Информация</button>
<!-- Указывает, что с этим действием следует соблюдать осторожность -->
<button type="button" class="btn btn-warning">Предупреждение</button>
<!-- Указывает на опасное или потенциально отрицательное действие -->
<button type="button" class="btn btn-danger">Опасность</button>
<!-- Принизить кнопку, заставив ее выглядеть как ссылка, сохраняя при этом поведение кнопки -->
<button type="button" class="btn btn-link">Ссылка</button>
Использование цвета для добавления смысла к кнопке обеспечивает только
визуальную индикацию, которая не будет передана пользователям
вспомогательных технологий – таких как программы чтения с экрана.
Убедитесь, что информация, обозначенная цветом, либо очевидна из самого
содержимого (видимый текст кнопки), либо включена через альтернативные
средства, такие как дополнительный текст, скрытый с помощью класса
.sr-only
.
Хотите большие или маленькие кнопки? Добавьте .btn-lg
,
.btn-sm
или .btn-xs
для дополнительных размеров.
<p>
<button type="button" class="btn btn-primary btn-lg">Большая кнопка</button>
<button type="button" class="btn btn-default btn-lg">Большая кнопка</button>
</p>
<p>
<button type="button" class="btn btn-primary">Кнопка по умолчанию</button>
<button type="button" class="btn btn-default">Кнопка по умолчанию</button>
</p>
<p>
<button type="button" class="btn btn-primary btn-sm">
Маленькая кнопка
</button>
<button type="button" class="btn btn-default btn-sm">
Маленькая кнопка
</button>
</p>
<p>
<button type="button" class="btn btn-primary btn-xs">
Очень маленькая кнопка
</button>
<button type="button" class="btn btn-default btn-xs">
Очень маленькая кнопка
</button>
</p>
Создайте блочные кнопки – те, которые охватывают полную ширину родителя –
добавив .btn-block
.
<button type="button" class="btn btn-primary btn-lg btn-block">
Блочная кнопка
</button>
<button type="button" class="btn btn-default btn-lg btn-block">
Блочная кнопка
</button>
Кнопки будут выглядеть нажатыми (с более темным фоном, более темной границей
и внутренней тенью) когда активны. Для элементов
<button>
это делается через :active
. Для
элементов <a>
это делается с помощью
.active
. Однако вы можете использовать .active
на
<button>
(и включить атрибут
aria-pressed="true"
), если вам нужно программно воспроизвести
активное состояние.
Нет необходимости добавлять :active
, так как это псевдокласс,
но если вам нужно принудительно применить тот же внешний вид, вперед и
добавьте .active
.
<button type="button" class="btn btn-primary btn-lg active">
Основная кнопка
</button>
<button type="button" class="btn btn-default btn-lg active">Кнопка</button>
Добавьте класс .active
к кнопкам <a>
.
<a href="#" class="btn btn-primary btn-lg active" role="button"
>Основная ссылка</a
>
<a href="#" class="btn btn-default btn-lg active" role="button">Ссылка</a>
Сделайте кнопки выглядящими неактивными, приглушив их с помощью
opacity
.
Добавьте атрибут disabled
к кнопкам
<button>
.
<button type="button" class="btn btn-lg btn-primary" disabled="disabled">
Основная кнопка
</button>
<button type="button" class="btn btn-default btn-lg" disabled="disabled">
Кнопка
</button>
Если вы добавите атрибут disabled
к
<button>
, Internet Explorer 9 и ниже будет отображать
текст серым с неприятной тенью текста, которую мы не можем исправить.
Добавьте класс .disabled
к кнопкам <a>
.
<a href="#" class="btn btn-primary btn-lg disabled" role="button"
>Основная ссылка</a
>
<a href="#" class="btn btn-default btn-lg disabled" role="button">Ссылка</a>
Мы используем .disabled
как утилитарный класс здесь, аналогично
общему классу .active
, поэтому префикс не требуется.
Этот класс использует pointer-events: none
для попытки
отключить функциональность ссылок <a>
, но это CSS
свойство еще не стандартизировано и не полностью поддерживается в Opera 18
и ниже, или в Internet Explorer 11. Кроме того, даже в браузерах, которые
поддерживают pointer-events: none
, навигация с клавиатуры
остается незатронутой, что означает, что зрячие пользователи клавиатуры и
пользователи вспомогательных технологий все еще смогут активировать эти
ссылки. Поэтому для безопасности используйте пользовательский JavaScript
для отключения таких ссылок.
Изображения в Bootstrap 3 могут быть сделаны адаптивными с помощью
добавления класса .img-responsive
. Это применяет
max-width: 100%;
, height: auto;
и
display: block;
к изображению, чтобы оно красиво
масштабировалось к родительскому элементу.
Для центрирования изображений, которые используют класс
.img-responsive
, используйте .center-block
вместо
.text-center
.
Смотрите раздел вспомогательных классов
для получения дополнительной информации об использовании
.center-block
.
В Internet Explorer 8-10 SVG изображения с
.img-responsive
имеют непропорциональный размер. Для
исправления этого добавьте width: 100% \9;
где необходимо.
Bootstrap не применяет это автоматически, так как это вызывает осложнения
для других форматов изображений.
<img src="..." class="img-responsive" alt="Адаптивное изображение" />
Добавьте классы к элементу <img>
для легкого стилизования
изображений в любом проекте.
Имейте в виду, что Internet Explorer 8 не поддерживает скругленные углы.
<img src="..." alt="..." class="img-rounded" />
<img src="..." alt="..." class="img-circle" />
<img src="..." alt="..." class="img-thumbnail" />
Передавайте смысл через цвет с помощью нескольких утилитарных классов выделения. Они также могут применяться к ссылкам и будут темнеть при наведении, как и наши стандартные стили ссылок.
Fusce dapibus, tellus ac cursus commodo, tortor mauris nibh.
Nullam id dolor id nibh ultricies vehicula ut id elit.
Duis mollis, est non commodo luctus, nisi erat porttitor ligula.
Maecenas sed diam eget risus varius blandit sit amet non magna.
Etiam porta sem malesuada magna mollis euismod.
Donec ullamcorper nulla non metus auctor fringilla.
<p class="text-muted">...</p>
<p class="text-primary">...</p>
<p class="text-success">...</p>
<p class="text-info">...</p>
<p class="text-warning">...</p>
<p class="text-danger">...</p>
Иногда классы выделения не могут быть применены из-за специфичности
другого селектора. В большинстве случаев достаточным обходным путем
является обертывание вашего текста в <span>
с классом.
Использование цвета для добавления смысла обеспечивает только визуальную
индикацию, которая не будет передана пользователям вспомогательных
технологий – таких как программы чтения с экрана. Убедитесь, что
информация, обозначенная цветом, либо очевидна из самого содержимого
(контекстные цвета используются только для усиления смысла, который уже
присутствует в тексте/разметке), либо включена через альтернативные
средства, такие как дополнительный текст, скрытый с помощью класса
.sr-only
.
Аналогично контекстным классам цвета текста, легко установите фон элемента на любой контекстный класс. Компоненты якоря будут темнеть при наведении, как и классы текста.
Nullam id dolor id nibh ultricies vehicula ut id elit.
Duis mollis, est non commodo luctus, nisi erat porttitor ligula.
Maecenas sed diam eget risus varius blandit sit amet non magna.
Etiam porta sem malesuada magna mollis euismod.
Donec ullamcorper nulla non metus auctor fringilla.
<p class="bg-primary">...</p>
<p class="bg-success">...</p>
<p class="bg-info">...</p>
<p class="bg-warning">...</p>
<p class="bg-danger">...</p>
Иногда контекстные классы фона не могут быть применены из-за специфичности
другого селектора. В некоторых случаях достаточным обходным путем является
обертывание содержимого вашего элемента в <div>
с
классом.
Как и с контекстными цветами, убедитесь, что любой смысл, передаваемый через цвет, также передается в формате, который не является чисто презентационным.
Используйте универсальную иконку закрытия для отклонения контента, такого как модальные окна и оповещения.
<button type="button" class="close" aria-label="Закрыть">
<span aria-hidden="true">×</span>
</button>
Используйте каретки для обозначения функциональности выпадающего списка и направления. Обратите внимание, что стандартная каретка будет автоматически переворачиваться в выпадающих меню вверх.
<span class="caret"></span>
Сделайте элемент плавающим влево или вправо с помощью класса.
!important
включен для избежания проблем со специфичностью.
Классы также могут использоваться как миксины.
<div class="pull-left">...</div>
<div class="pull-right">...</div>
// Классы .pull-left { float: left
!important; } .pull-right { float: right !important; } // Использование как
миксины .element { .pull-left(); } .another-element { .pull-right(); }
Установите элемент на display: block
и центрируйте через
margin
. Доступно как миксин и класс.
<div class="center-block">...</div>
// Класс .center-block { display:
block; margin-left: auto; margin-right: auto; } // Использование как миксин
.element { .center-block(); }
Легко очистите float
ы, добавив .clearfix
к родительскому элементу. Использует
микро clearfix, популяризированный Nicolas Gallagher. Также может использоваться как
миксин.
<!-- Использование как класс -->
<div class="clearfix">...</div>
// Сам миксин .clearfix() { &:before,
&:after { content: " "; display: table; } &:after { clear: both; } } //
Использование как миксин .element { .clearfix(); }
Принудительно покажите или скройте элемент (включая для программ чтения с экрана) с помощью классов .show
и .hidden
. Эти классы
используют !important
для избежания конфликтов специфичности,
как и быстрые плавающие элементы. Они
доступны только для переключения на уровне блоков. Они также могут
использоваться как миксины.
.hide
доступен, но он не всегда влияет на программы чтения с
экрана и устарел с версии v3.0.1. Используйте
.hidden
или .sr-only
вместо этого.
Кроме того, .invisible
может использоваться для переключения
только видимости элемента, что означает, что его display
не
изменяется и элемент все еще может влиять на поток документа.
<div class="show">...</div>
<div class="hidden">...</div>
// Классы .show { display: block
!important; } .hidden { display: none !important; } .invisible { visibility:
hidden; } // Использование как миксины .element { .show(); } .another-element
{ .hidden(); }
Скрывайте элемент от всех устройств
кроме программ чтения с экрана с помощью
.sr-only
. Объедините .sr-only
с
.sr-only-focusable
, чтобы снова показать элемент, когда он в
фокусе (например, пользователем только с клавиатурой). Необходимо для
следования
лучшим практикам доступности. Также может использоваться как миксины.
<a class="sr-only sr-only-focusable" href="#content"
>Перейти к основному содержимому</a
>
// Использование как миксин
.skip-navigation { .sr-only(); .sr-only-focusable(); }
Используйте класс .text-hide
или миксин для помощи в замене
текстового содержимого элемента фоновым изображением.
<h1 class="text-hide">Пользовательский заголовок</h1>
// Использование как миксин .heading {
.text-hide(); }
Для более быстрой мобильной разработки используйте эти утилитарные классы для показа и скрытия контента по устройствам через медиа-запросы. Также включены утилитарные классы для переключения контента при печати.
Старайтесь использовать их ограниченно и избегайте создания полностью разных версий одного и того же сайта. Вместо этого используйте их для дополнения презентации каждого устройства.
Используйте один или комбинацию доступных классов для переключения контента через точки останова viewport.
Очень маленькие устройства Телефоны (<768px) | Маленькие устройства Планшеты (≥768px) | Средние устройства Десктопы (≥992px) | Большие устройства Десктопы (≥1200px) | |
---|---|---|---|---|
.visible-xs-* |
Видимый | Скрытый | Скрытый | Скрытый |
.visible-sm-* |
Скрытый | Видимый | Скрытый | Скрытый |
.visible-md-* |
Скрытый | Скрытый | Видимый | Скрытый |
.visible-lg-* |
Скрытый | Скрытый | Скрытый | Видимый |
.hidden-xs |
Скрытый | Видимый | Видимый | Видимый |
.hidden-sm |
Видимый | Скрытый | Видимый | Видимый |
.hidden-md |
Видимый | Видимый | Скрытый | Видимый |
.hidden-lg |
Видимый | Видимый | Видимый | Скрытый |
Начиная с версии v3.2.0, классы .visible-*-*
для каждой точки
останова поставляются в трех вариациях, по одной для каждого значения CSS
свойства display
, перечисленного ниже.
Группа классов | CSS display |
---|---|
.visible-*-block |
display: block; |
.visible-*-inline |
display: inline; |
.visible-*-inline-block |
display: inline-block; |
Так, для очень маленьких (xs
) экранов, например, доступные
классы .visible-*-*
это: .visible-xs-block
,
.visible-xs-inline
и .visible-xs-inline-block
.
Классы .visible-xs
, .visible-sm
,
.visible-md
и .visible-lg
также существуют, но
устарели с версии v3.2.0. Они приблизительно эквивалентны
.visible-*-block
, за исключением дополнительных специальных
случаев для переключения элементов, связанных с <table>
.
Аналогично обычным адаптивным классам, используйте их для переключения контента для печати.
Классы | Браузер | Печать |
---|---|---|
.visible-print-block .visible-print-inline .visible-print-inline-block
|
Скрытый | Видимый |
.hidden-print |
Видимый | Скрытый |
Класс .visible-print
также существует, но
устарел с версии v3.2.0. Он приблизительно эквивалентен
.visible-print-block
, за исключением дополнительных специальных
случаев для элементов, связанных с <table>
.
Измените размер браузера или загрузите на разных устройствах для тестирования адаптивных утилитарных классов.
Зеленые галочки указывают, что элемент видим в вашем текущем viewport.
Здесь зеленые галочки также указывают, что элемент скрыт в вашем текущем viewport.
CSS Bootstrap построен на Less, препроцессоре с дополнительной функциональностью, такой как переменные, миксины и функции для компиляции CSS. Те, кто хочет использовать исходные файлы Less вместо наших скомпилированных CSS файлов, могут воспользоваться многочисленными переменными и миксинами, которые мы используем во всем фреймворке.
Переменные и миксины сетки рассматриваются в разделе Система сетки.
Bootstrap может использоваться по крайней мере двумя способами: с скомпилированным CSS или с исходными файлами Less. Для компиляции файлов Less обратитесь к разделу Начало работы для настройки вашей среды разработки для запуска необходимых команд.
Сторонние инструменты компиляции могут работать с Bootstrap, но они не поддерживаются нашей основной командой.
Переменные используются во всем проекте как способ централизации и совместного использования часто используемых значений, таких как цвета, отступы или стеки шрифтов. Для полного разбора см. Настройщик.
Легко используйте две цветовые схемы: оттенки серого и семантические. Цвета оттенков серого обеспечивают быстрый доступ к часто используемым оттенкам черного, в то время как семантические включают различные цвета, назначенные значимым контекстным значениям.
@gray-darker: lighten(#000, 13.5%); // #222 @gray-dark:
lighten(#000, 20%); // #333 @gray: lighten(#000, 33.5%); // #555 @gray-light:
lighten(#000, 46.7%); // #777 @gray-lighter: lighten(#000, 93.5%); // #eee
@brand-primary: darken(#428bca, 6.5%); // #337ab7
@brand-success: #5cb85c; @brand-info: #5bc0de; @brand-warning: #f0ad4e;
@brand-danger: #d9534f;
Используйте любую из этих цветовых переменных как есть или переназначьте их более значимым переменным для вашего проекта.
// Использование как есть .masthead { background-color:
@brand-primary; } // Переназначенные переменные в Less
@alert-message-background: @brand-info; .alert { background-color:
@alert-message-background; }
Несколько переменных для быстрой настройки ключевых элементов скелета вашего сайта.
// Каркас @body-bg: #fff; @text-color: @black-50;
Легко стилизуйте ваши ссылки правильным цветом только с одним значением.
// Переменные @link-color: @brand-primary;
@link-hover-color: darken(@link-color, 15%); // Использование a { color:
@link-color; text-decoration: none; &:hover { color: @link-hover-color;
text-decoration: underline; } }
Обратите внимание, что @link-hover-color
использует функцию,
еще один потрясающий инструмент из Less, для автоматического создания
правильного цвета при наведении. Вы можете использовать darken
,
lighten
, saturate
и desaturate
.
Легко установите ваш шрифт, размер текста, межстрочный интервал и многое другое с помощью нескольких быстрых переменных. Bootstrap также использует их для предоставления легких типографических миксинов.
@font-family-sans-serif: "Helvetica Neue", Helvetica,
Arial, sans-serif; @font-family-serif: Georgia, "Times New Roman", Times,
serif; @font-family-monospace: Menlo, Monaco, Consolas, "Courier New",
monospace; @font-family-base: @font-family-sans-serif; @font-size-base: 14px;
@font-size-large: ceil((@font-size-base * 1.25)); // ~18px @font-size-small:
ceil((@font-size-base * 0.85)); // ~12px @font-size-h1: floor((@font-size-base
* 2.6)); // ~36px @font-size-h2: floor((@font-size-base * 2.15)); // ~30px
@font-size-h3: ceil((@font-size-base * 1.7)); // ~24px @font-size-h4:
ceil((@font-size-base * 1.25)); // ~18px @font-size-h5: @font-size-base;
@font-size-h6: ceil((@font-size-base * 0.85)); // ~12px @line-height-base:
1.428571429; // 20/14 @line-height-computed: floor((@font-size-base *
@line-height-base)); // ~20px @headings-font-family: inherit;
@headings-font-weight: 500; @headings-line-height: 1.1; @headings-color:
inherit;
Две быстрые переменные для настройки расположения и имени файла ваших иконок.
@icon-font-path: "../fonts/"; @icon-font-name:
"glyphicons-halflings-regular";
Компоненты во всем Bootstrap используют некоторые переменные по умолчанию для установки общих значений. Вот наиболее часто используемые.
@padding-base-vertical: 6px; @padding-base-horizontal:
12px; @padding-large-vertical: 10px; @padding-large-horizontal: 16px;
@padding-small-vertical: 5px; @padding-small-horizontal: 10px;
@padding-xs-vertical: 1px; @padding-xs-horizontal: 5px; @line-height-large:
1.33; @line-height-small: 1.5; @border-radius-base: 4px; @border-radius-large:
6px; @border-radius-small: 3px; @component-active-color: #fff;
@component-active-bg: @brand-primary; @caret-width-base: 4px;
@caret-width-large: 5px;
Вендорные миксины - это миксины для помощи в поддержке нескольких браузеров путем включения всех соответствующих вендорных префиксов в ваш скомпилированный CSS.
Сбросьте модель блока ваших компонентов с помощью одного миксина. Для контекста см. эту полезную статью от Mozilla.
Миксин устарел с версии v3.2.0, с введением Autoprefixer. Для сохранения обратной совместимости Bootstrap будет продолжать использовать миксин внутренне до Bootstrap v4.
.box-sizing(@box-model) { -webkit-box-sizing: @box-model;
// Safari <= 5 -moz-box-sizing: @box-model; // Firefox <= 19 box-sizing:
@box-model; }
Сегодня все современные браузеры поддерживают не префиксное свойство
border-radius
. Как таковое, нет миксина
.border-radius()
, но Bootstrap включает сокращения для быстрого
скругления двух углов на определенной стороне объекта.
.border-top-radius(@radius) { border-top-right-radius:
@radius; border-top-left-radius: @radius; } .border-right-radius(@radius) {
border-bottom-right-radius: @radius; border-top-right-radius: @radius; }
.border-bottom-radius(@radius) { border-bottom-right-radius: @radius;
border-bottom-left-radius: @radius; } .border-left-radius(@radius) {
border-bottom-left-radius: @radius; border-top-left-radius: @radius; }
Если ваша целевая аудитория использует самые последние и лучшие браузеры и
устройства, обязательно используйте только свойство
box-shadow
само по себе. Если вам нужна поддержка старых
Android (до v4) и iOS устройств (до iOS 5), используйте
устаревший миксин для получения требуемого префикса
-webkit
.
Миксин устарел с версии v3.1.0, поскольку Bootstrap официально не поддерживает устаревшие платформы, которые не поддерживают стандартное свойство. Для сохранения обратной совместимости Bootstrap будет продолжать использовать миксин внутренне до Bootstrap v4.
Обязательно используйте цвета rgba()
в ваших тенях, чтобы они
как можно более бесшовно смешивались с фонами.
.box-shadow(@shadow: 0 1px 3px rgba(0,0,0,.25)) {
-webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1 box-shadow: @shadow; }
Несколько миксинов для гибкости. Установите всю информацию о переходе с помощью одного или укажите отдельную задержку и продолжительность по мере необходимости.
Миксины устарели с версии v3.2.0, с введением Autoprefixer. Для сохранения обратной совместимости Bootstrap будет продолжать использовать миксины внутренне до Bootstrap v4.
.transition(@transition) { -webkit-transition:
@transition; transition: @transition; }
.transition-property(@transition-property) { -webkit-transition-property:
@transition-property; transition-property: @transition-property; }
.transition-delay(@transition-delay) { -webkit-transition-delay:
@transition-delay; transition-delay: @transition-delay; }
.transition-duration(@transition-duration) { -webkit-transition-duration:
@transition-duration; transition-duration: @transition-duration; }
.transition-timing-function(@timing-function) {
-webkit-transition-timing-function: @timing-function;
transition-timing-function: @timing-function; }
.transition-transform(@transition) { -webkit-transition: -webkit-transform
@transition; -moz-transition: -moz-transform @transition; -o-transition:
-o-transform @transition; transition: transform @transition; }
Поверните, масштабируйте, переместите или наклоните любой объект.
Миксины устарели с версии v3.2.0, с введением Autoprefixer. Для сохранения обратной совместимости Bootstrap будет продолжать использовать миксины внутренне до Bootstrap v4.
.rotate(@degrees) { -webkit-transform: rotate(@degrees);
-ms-transform: rotate(@degrees); // IE9 only transform: rotate(@degrees); }
.scale(@ratio; @ratio-y...) { -webkit-transform: scale(@ratio, @ratio-y);
-ms-transform: scale(@ratio, @ratio-y); // IE9 only transform: scale(@ratio,
@ratio-y); } .translate(@x; @y) { -webkit-transform: translate(@x, @y);
-ms-transform: translate(@x, @y); // IE9 only transform: translate(@x, @y); }
.skew(@x; @y) { -webkit-transform: skew(@x, @y); -ms-transform: skewX(@x)
skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
transform: skew(@x, @y); } .translate3d(@x; @y; @z) { -webkit-transform:
translate3d(@x, @y, @z); transform: translate3d(@x, @y, @z); }
.rotateX(@degrees) { -webkit-transform: rotateX(@degrees); -ms-transform:
rotateX(@degrees); // IE9 only transform: rotateX(@degrees); }
.rotateY(@degrees) { -webkit-transform: rotateY(@degrees); -ms-transform:
rotateY(@degrees); // IE9 only transform: rotateY(@degrees); }
.perspective(@perspective) { -webkit-perspective: @perspective;
-moz-perspective: @perspective; perspective: @perspective; }
.perspective-origin(@perspective) { -webkit-perspective-origin: @perspective;
-moz-perspective-origin: @perspective; perspective-origin: @perspective; }
.transform-origin(@origin) { -webkit-transform-origin: @origin;
-moz-transform-origin: @origin; -ms-transform-origin: @origin; // IE9 only
transform-origin: @origin; }
Один миксин для использования всех свойств анимации CSS3 в одном объявлении и другие миксины для отдельных свойств.
Миксины устарели с версии v3.2.0, с введением Autoprefixer. Для сохранения обратной совместимости Bootstrap будет продолжать использовать миксины внутренне до Bootstrap v4.
.animation(@animation) { -webkit-animation: @animation;
animation: @animation; } .animation-name(@name) { -webkit-animation-name:
@name; animation-name: @name; } .animation-duration(@duration) {
-webkit-animation-duration: @duration; animation-duration: @duration; }
.animation-timing-function(@timing-function) {
-webkit-animation-timing-function: @timing-function;
animation-timing-function: @timing-function; } .animation-delay(@delay) {
-webkit-animation-delay: @delay; animation-delay: @delay; }
.animation-iteration-count(@iteration-count) {
-webkit-animation-iteration-count: @iteration-count;
animation-iteration-count: @iteration-count; }
.animation-direction(@direction) { -webkit-animation-direction: @direction;
animation-direction: @direction; }
Установите прозрачность для всех браузеров и предоставьте fallback
filter
для IE8.
.opacity(@opacity) { opacity: @opacity; // IE8 filter
@opacity-ie: (@opacity * 100); filter: ~"alpha(opacity=@{opacity-ie})"; }
Предоставьте контекст для элементов управления формами в каждом поле.
.placeholder(@color: @input-color-placeholder) {
&::-moz-placeholder { color: @color; } // Firefox &:-ms-input-placeholder {
color: @color; } // Internet Explorer 10+ &::-webkit-input-placeholder {
color: @color; } // Safari and Chrome }
Генерируйте колонки через CSS в одном элементе.
.content-columns(@width; @count; @gap) {
-webkit-column-width: @width; -moz-column-width: @width; column-width: @width;
-webkit-column-count: @count; -moz-column-count: @count; column-count: @count;
-webkit-column-gap: @gap; -moz-column-gap: @gap; column-gap: @gap; }
Легко превратите любые два цвета в фоновый градиент. Станьте более продвинутым и установите направление, используйте три цвета или используйте радиальный градиент. С одним миксином вы получите все префиксные синтаксисы, которые вам понадобятся.
#gradient > .vertical(#333; #000); #gradient >
.horizontal(#333; #000); #gradient > .radial(#333; #000);
Вы также можете указать угол стандартного двухцветного линейного градиента:
#gradient > .directional(#333; #000; 45deg);
Если вам нужен градиент в стиле парикмахерской полосы, это тоже легко. Просто укажите один цвет, и мы наложим полупрозрачную белую полосу.
#gradient > .striped(#333; 45deg);
Повысьте ставки и используйте три цвета вместо этого. Установите первый цвет, второй цвет, точку остановки цвета второго цвета (процентное значение, такое как 25%), и третий цвет с этими миксинами:
#gradient > .vertical-three-colors(#777; #333; 25%;
#000); #gradient > .horizontal-three-colors(#777; #333; 25%; #000);
Внимание! Если вам когда-либо понадобится удалить градиент,
обязательно удалите любой специфичный для IE filter
, который вы
могли добавить. Вы можете сделать это, используя миксин
.reset-filter()
вместе с background-image: none;
.
Утилитарные миксины - это миксины, которые объединяют в противном случае несвязанные CSS свойства для достижения конкретной цели или задачи.
Забудьте о добавлении class="clearfix"
к любому элементу и
вместо этого добавьте миксин .clearfix()
где это уместно.
Использует
микро clearfix
от
Nicolas Gallagher.
// Миксин .clearfix() { &:before, &:after { content: " ";
display: table; } &:after { clear: both; } } // Использование .container {
.clearfix(); }
Быстро центрируйте любой элемент в его родителе.
Требует установки width
или max-width
.
// Миксин .center-block() { display: block; margin-left:
auto; margin-right: auto; } // Использование .container { width: 940px;
.center-block(); }
Укажите размеры объекта более легко.
// Миксины .size(@width; @height) { width: @width;
height: @height; } .square(@size) { .size(@size; @size); } // Использование
.image { .size(400px; 300px); } .avatar { .square(48px); }
Легко настройте параметры изменения размера для любого textarea или любого
другого элемента. По умолчанию нормальное поведение браузера
(both
).
.resizable(@direction: both) { // Опции: horizontal,
vertical, both resize: @direction; // Исправление Safari overflow: auto; }
Легко усекайте текст с многоточием с помощью одного миксина.
Требует, чтобы элемент был уровня block
или
inline-block
.
// Миксин .text-overflow() { overflow: hidden;
text-overflow: ellipsis; white-space: nowrap; } // Использование .branch-name
{ display: inline-block; max-width: 200px; .text-overflow(); }
Укажите два пути к изображениям и размеры изображения @1x, и Bootstrap предоставит медиа-запрос @2x. Если у вас много изображений для обслуживания, рассмотрите возможность написания CSS для retina изображений вручную в одном медиа-запросе.
.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {
background-image: url("@{file-1x}"); @media only screen and
(-webkit-min-device-pixel-ratio: 2), only screen and (
min--moz-device-pixel-ratio: 2), only screen and ( -o-min-device-pixel-ratio:
2/1), only screen and ( min-device-pixel-ratio: 2), only screen and (
min-resolution: 192dpi), only screen and ( min-resolution: 2dppx) {
background-image: url("@{file-2x}"); background-size: @width-1x @height-1x; }
} // Использование .jumbotron { .img-retina("/img/bg-1x.png",
"/img/bg-2x.png", 100px, 100px); }
Хотя Bootstrap построен на Less, у него также есть официальный Sass порт. Мы поддерживаем его в отдельном GitHub репозитории и обрабатываем обновления с помощью скрипта конвертации.
Поскольку Sass порт имеет отдельный репозиторий и обслуживает немного другую аудиторию, содержимое проекта значительно отличается от основного проекта Bootstrap. Это обеспечивает максимальную совместимость Sass порта с как можно большим количеством систем на основе Sass.
Путь | Описание |
---|---|
lib/ |
Код Ruby gem (конфигурация Sass, интеграции Rails и Compass) |
tasks/ |
Скрипты конвертера (превращение upstream Less в Sass) |
test/ |
Тесты компиляции |
templates/ |
Манифест пакета Compass |
vendor/assets/ |
Файлы Sass, JavaScript и шрифтов |
Rakefile |
Внутренние задачи, такие как rake и convert |
Посетите GitHub репозиторий Sass порта, чтобы увидеть эти файлы в действии.
Для получения информации о том, как установить и использовать Bootstrap для Sass, обратитесь к readme GitHub репозитория. Это самый актуальный источник и включает информацию для использования с Rails, Compass и стандартными проектами Sass.