Перезагрузить
Перезагрузите, набор изменений CSS для конкретных элементов в одном файле, запустите Bootstrap, чтобы обеспечить элегантную, последовательную и простую основу для дальнейшего развития.
Подход
Reboot основывается на Normalize, предоставляя многим HTML-элементам несколько самоуверенные стили, используя только селекторы элементов. Дополнительные стили делаются только с классами. Например, мы перезагружаем некоторые <table>
стили для упрощения базовой линии, а позже предоставляем .table
, .table-bordered
, и многое другое.
Вот наши рекомендации и причины для выбора того, что переопределить при перезагрузке:
- Обновите некоторые значения браузера по умолчанию, чтобы использовать
rem
s вместоem
s для масштабируемого расстояния между компонентами. - Избегайте
margin-top
. Вертикальные поля могут свернуть, что приведет к неожиданным результатам. Что еще более важно, единственное направлениеmargin
— это более простая ментальная модель. - Для упрощения масштабирования по размерам устройств блочные элементы должны использовать
rem
s вместоmargin
s. font
Сведите к минимуму объявления связанных с -свойств, используя ихinherit
везде, где это возможно.
CSS-переменные
Добавлено в v5.1.1
В версии 5.1.1 мы стандартизировали необходимые @import
s для всех наших пакетов CSS (включая bootstrap.css
, bootstrap-reboot.css
, и bootstrap-grid.css
включая _root.scss
. Это добавляет :root
переменные уровня CSS ко всем пакетам, независимо от того, сколько из них используется в этом пакете. В конечном итоге Bootstrap 5 продолжит увидеть больше переменных CSS, добавленных с течением времени.
Параметры страницы по умолчанию
Элементы <html>
и <body>
обновлены, чтобы обеспечить лучшие значения по умолчанию для всей страницы. Более конкретно:
- Глобально
box-sizing
устанавливается для каждого элемента, включая*::before
и*::after
доborder-box
. Это гарантирует, что объявленная ширина элемента никогда не будет превышена из-за заполнения или границы.- База
font-size
не объявлена в<html>
, но16px
предполагается (браузер по умолчанию).font-size: 1rem
применяется<body>
для легкого адаптивного масштабирования типов с помощью медиа-запросов, при этом учитываются предпочтения пользователя и обеспечивается более доступный подход. Этот браузер по умолчанию можно переопределить, изменив$font-size-root
переменную.
- База
- Также
<body>
устанавливает глобальныеfont-family
,font-weight
,line-height
иcolor
. Позже это наследуется некоторыми элементами формы для предотвращения несоответствия шрифтов. - В целях безопасности
<body>
объявленоbackground-color
значение#fff
.
Родной стек шрифтов
Bootstrap использует «собственный стек шрифтов» или «стек системных шрифтов» для оптимального рендеринга текста на каждом устройстве и в любой операционной системе. Эти системные шрифты были разработаны специально для современных устройств, с улучшенным рендерингом на экранах, поддержкой переменных шрифтов и многим другим. Подробнее о нативных стеках шрифтов читайте в этой статье Smashing Magazine .
$font-family-sans-serif:
// Cross-platform generic font family (default user interface font)
system-ui,
// Safari for macOS and iOS (San Francisco)
-apple-system,
// Windows
"Segoe UI",
// Android
Roboto,
// Basic web fallback
"Helvetica Neue", Arial,
// Linux
"Noto Sans",
"Liberation Sans",
// Sans serif fallback
sans-serif,
// Emoji fonts
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
Обратите внимание, что, поскольку стек шрифтов включает в себя шрифты эмодзи, многие распространенные символы Unicode символов/дингбатов будут отображаться как разноцветные пиктограммы. Их внешний вид будет различаться в зависимости от стиля, используемого в собственном шрифте эмодзи браузера/платформы, и на них не будут влиять никакие color
стили CSS.
Это font-family
применяется к <body>
и автоматически наследуется глобально во всем Bootstrap. Чтобы переключить глобальный файл font-family
, обновите $font-family-base
и перекомпилируйте Bootstrap.
CSS-переменные
По мере того, как Bootstrap 5 продолжает развиваться, все больше и больше стилей будут создаваться с использованием переменных CSS как средства обеспечения большей настройки в реальном времени без необходимости постоянно перекомпилировать Sass. Наш подход заключается в том, чтобы взять наши исходные переменные Sass и преобразовать их в переменные CSS. Таким образом, даже если вы не используете переменные CSS, у вас все еще есть все возможности Sass. Это все еще находится в стадии разработки, и для полной реализации потребуется время.
Например, рассмотрите эти :root
переменные CSS для общих <body>
стилей:
@if $font-size-root != null {
--#{$variable-prefix}root-font-size: #{$font-size-root};
}
--#{$variable-prefix}body-font-family: #{$font-family-base};
--#{$variable-prefix}body-font-size: #{$font-size-base};
--#{$variable-prefix}body-font-weight: #{$font-weight-base};
--#{$variable-prefix}body-line-height: #{$line-height-base};
--#{$variable-prefix}body-color: #{$body-color};
@if $body-text-align != null {
--#{$variable-prefix}body-text-align: #{$body-text-align};
}
--#{$variable-prefix}body-bg: #{$body-bg};
На практике эти переменные затем применяются при перезагрузке следующим образом:
body {
margin: 0; // 1
font-family: var(--#{$variable-prefix}body-font-family);
@include font-size(var(--#{$variable-prefix}body-font-size));
font-weight: var(--#{$variable-prefix}body-font-weight);
line-height: var(--#{$variable-prefix}body-line-height);
color: var(--#{$variable-prefix}body-color);
text-align: var(--#{$variable-prefix}body-text-align);
background-color: var(--#{$variable-prefix}body-bg); // 2
-webkit-text-size-adjust: 100%; // 3
-webkit-tap-highlight-color: rgba($black, 0); // 4
}
Что позволяет вам делать настройки в реальном времени, как вам нравится:
<body style="--bs-body-color: #333;">
<!-- ... -->
</body>
Заголовки и абзацы
Все элементы заголовков — например, — и <h1>
сбрасываются <p>
для их margin-top
удаления. Добавлены заголовки margin-bottom: .5rem
и абзацы margin-bottom: 1rem
для легкого интервала.
Заголовок | Пример |
---|---|
<h1></h1> |
ч1. Начальный заголовок |
<h2></h2> |
ч2. Начальный заголовок |
<h3></h3> |
h3. Начальный заголовок |
<h4></h4> |
h4. Начальный заголовок |
<h5></h5> |
h5. Начальный заголовок |
<h6></h6> |
h6. Начальный заголовок |
Списки
Все списки— <ul>
, <ol>
и <dl>
—удалены , margin-top
а margin-bottom: 1rem
. Вложенные списки не имеют margin-bottom
. Мы также сбросили элементы padding-left
on <ul>
и .<ol>
- У всех списков удалены верхние поля
- И их нижнее поле нормализовано
- Вложенные списки не имеют нижнего поля
- Таким образом, они имеют более ровный вид.
- Особенно, когда за ними следуют другие элементы списка
- Левое дополнение также было сброшено
- Вот упорядоченный список
- С несколькими элементами списка
- Он имеет такой же общий вид
- Как предыдущий неупорядоченный список
Для более простого стиля, четкой иерархии и лучшего интервала списки описаний обновлены margin
. <dd>
s сбросить и margin-left
добавить . s выделены жирным шрифтом .0
margin-bottom: .5rem
<dt>
- Списки описаний
- Список описаний идеально подходит для определения терминов.
- Срок
- Определение термина.
- Второе определение того же термина.
- Другой термин
- Определение этого другого термина.
Встроенный код
Оберните встроенные фрагменты кода с помощью <code>
. Обязательно избегайте угловых скобок HTML.
<section>
должен быть обернут как встроенный.
For example, <code><section></code> should be wrapped as inline.
Кодовые блоки
Используйте <pre>
s для нескольких строк кода. Еще раз, обязательно избегайте угловых скобок в коде для правильного рендеринга. Элемент <pre>
сбрасывается, чтобы удалить его margin-top
и использовать rem
единицы для его margin-bottom
.
<p>Sample text here...</p>
<p>And another line of sample text here...</p>
<pre><code><p>Sample text here...</p>
<p>And another line of sample text here...</p>
</code></pre>
Переменные
Для указания переменных используйте <var>
тег.
<var>y</var> = <var>m</var><var>x</var> + <var>b</var>
Пользовательский ввод
Используйте <kbd>
для обозначения ввода, который обычно вводится с клавиатуры.
Чтобы изменить настройки, нажмите ctrl + ,
To switch directories, type <kbd>cd</kbd> followed by the name of the directory.<br>
To edit settings, press <kbd><kbd>ctrl</kbd> + <kbd>,</kbd></kbd>
Пример вывода
Для указания образца вывода из программы используйте <samp>
тег.
<samp>This text is meant to be treated as sample output from a computer program.</samp>
Столы
Таблицы слегка изменены в соответствии со стилями <caption>
, свернуты границы и обеспечивают единообразие text-align
во всем. Дополнительные изменения для границ, отступов и многого другого приходят с .table
классом .
Заголовок таблицы | Заголовок таблицы | Заголовок таблицы | Заголовок таблицы |
---|---|---|---|
Ячейка таблицы | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы |
Ячейка таблицы | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы |
Ячейка таблицы | Ячейка таблицы | Ячейка таблицы | Ячейка таблицы |
Формы
Различные элементы формы были перезагружены для более простых базовых стилей. Вот некоторые из наиболее заметных изменений:
<fieldset>
s не имеют границ, отступов или полей, поэтому их можно легко использовать в качестве оболочек для отдельных входных данных или групп входных данных.<legend>
s, как и наборы полей, также были изменены, чтобы отображаться как своего рода заголовок.<label>
s установленыdisplay: inline-block
для разрешенияmargin
применения.<input>
s,<select>
s,<textarea>
s и<button>
s в основном устраняются с помощью Normalize, но Reboot также удаляет ихmargin
и устанавливаетline-height: inherit
.<textarea>
изменены, чтобы изменять размер только по вертикали, поскольку изменение размера по горизонтали часто «ломает» макет страницы.<button>
элементы s и<input>
button имеютcursor: pointer
when:not(:disabled)
.
Эти и другие изменения показаны ниже.
Поддержка ввода даты и цвета
Имейте в виду, что ввод даты не полностью поддерживается всеми браузерами, а именно Safari.
Указатели на кнопках
Перезагрузка включает усовершенствование для role="button"
изменения курсора по умолчанию на pointer
. Добавьте этот атрибут к элементам, чтобы указать, что элементы являются интерактивными. Эта роль не нужна для <button>
элементов, которые получают свое cursor
изменение.
<span role="button" tabindex="0">Non-button element button</span>
Разные элементы
Адрес
Элемент <address>
обновляется, чтобы сбросить значение браузера по умолчанию font-style
с italic
на normal
. line-height
также теперь унаследовано и margin-bottom: 1rem
добавлено. <address>
s предназначены для представления контактной информации ближайшего предка (или всей совокупности работ). Сохраняйте форматирование, заканчивая строки символом <br>
.
1355 Market St, Suite 900
San Francisco, CA 94103 Тел
.: (123) 456-7890 Полное имя
[email protected]
Цитата
По умолчанию margin
для блок-кавычек используется значение 1em 40px
, поэтому мы сбрасываем его 0 0 1rem
на что-то более согласованное с другими элементами.
Известная цитата, содержащаяся в элементе blockquote.
Кто-то известный в Source Title
Встроенные элементы
Элемент <abbr>
получает базовый стиль, чтобы выделить его среди текста абзаца.
Резюме
Значение по умолчанию cursor
для сводки — text
, поэтому мы сбрасываем его, чтобы pointer
показать, что с элементом можно взаимодействовать, щелкнув по нему.
Некоторые подробности
Подробнее о деталях.
Еще больше деталей
Вот еще подробнее о деталях.
[hidden]
Атрибут HTML5
HTML5 добавляет новый глобальный атрибут с именем[hidden]
, который имеет стиль display: none
по умолчанию. Заимствуя идею из PureCSS , мы улучшили это значение по умолчанию, [hidden] { display: none !important; }
предотвратив его display
случайное переопределение.
<input type="text" hidden>
несовместимость jQuery
[hidden]
не совместим с jQuery $(...).hide()
и $(...).show()
методами. Поэтому в настоящее время мы особо не поддерживаем [hidden]
другие методы управления display
элементами.
Чтобы просто переключить видимость элемента, что означает, что display
он не изменен, и элемент все еще может влиять на поток документа, используйте вместо этого класс .invisible
.