Spec-Zone.ru › Tailwind CSS

Preflight

Набор базовых стилей для проектов Tailwind, с чёткой позицией.

Обзор

Созданный на основе modern-normalize, Preflight — это набор базовых стилей для проектов Tailwind, призванный устранить несоответствия между браузерами и упростить работу в рамках вашей системы дизайна.

Tailwind автоматически вставляет эти стили при включении @tailwind base в ваш CSS:

@tailwind base; /* Preflight will be injected here */

@tailwind components;

@tailwind utilities;

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

Для полного справочника всех стилей, применяемых Preflight, см. файл стилей.

Убраны стандартные отступы

Preflight удаляет все стандартные отступы у элементов, таких как заголовки, блоки цитат, абзацы и т.д.

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

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

Заголовки не стилизованы

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

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

Причина этого двояка:

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

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

Если вы хотите выборочно вводить разумные стандартные стили заголовков в части страницы в стиле статьи, мы рекомендуем @tailwindcss/typography плагин.

Списки не стилизованы

Нумерованные и маркированные списки по умолчанию не стилизованы, без маркеров/номеров и без отступов или отступов.

ol,
ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

Если вы хотите стилизовать список, вы можете сделать это, используя утилиты list-style-type и list-style-position:

<ul class="list-disc list-inside">
  <li>One</li>
  <li>Two</li>
  <li>Three</li>
</ul>

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

Если вы хотите выборочно вводить стандартные стили списков в части страницы в стиле статьи, мы рекомендуем @tailwindcss/typography плагин.

Учитывая доступность

Нестилизованные списки не объявляются как списки VoiceOver. Если ваш контент действительно является списком, но вы хотите сохранить его нестилизованным, добавьте атрибут «list» к элементу:

<ul role="list">
  <li>One</li>
  <li>Two</li>
  <li>Three</li>
</ul>

Изображения — блочные элементы

Изображения и другие заменяемые элементы (например, svg, video, canvas, и другие) по умолчанию являются display: block.

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block;
  vertical-align: middle;
}

Это помогает избежать неожиданных проблем с выравниванием, с которыми вы часто сталкиваетесь, используя стандартное браузерное поведение display: inline.

Если вам когда-либо нужно сделать один из этих элементов inline вместо block, просто используйте утилиту inline:

<img class="inline" src="..." alt="...">

Изображения ограничены шириной родителя

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

img,
video {
  max-width: 100%;
  height: auto;
}

Это предотвращает их переполнение контейнеров и делает их отзывчивыми по умолчанию. Если вам когда-либо нужно изменить это поведение, используйте утилиту max-w-none:

<img class="max-w-none" src="..." alt="...">

Стили границ сброшены глобально

Чтобы легко добавить границу, просто добавив класс border, Tailwind переопределяет стандартные стили границ для всех элементов с помощью следующих правил:

*,
::before,
::after {
  border-width: 0;
  border-style: solid;
  border-color: theme('borderColor.DEFAULT', currentColor);
}

Поскольку класс border устанавливает только свойство border-width, этот сброс гарантирует, что добавление этого класса всегда добавляет твёрдую границу 1 пиксел с использованием вашего настроенного цвета границы по умолчанию.

Это может привести к некоторым неожиданным результатам при интеграции определённых библиотек сторонних разработчиков, например, Google maps.

В таких ситуациях можно обойти их, переопределив стили Preflight собственным настраиваемым CSS:

.google-map * {
  border-style: none;
}

Расширение Preflight

Если вы хотите добавить свои собственные базовые стили поверх Preflight, просто добавьте их в свой CSS с помощью директивы @layer base:

@tailwind base;

@layer base {
  h1 {
    @apply text-2xl;
  }
  h2 {
    @apply text-xl;
  }
  h3 {
    @apply text-lg;
  }
  a {
    @apply text-blue-600 underline;
  }
}

@tailwind components;

@tailwind utilities;

Подробнее см. документацию по добавлению базовых стилей.

Отключение Preflight

Если вы хотите полностью отключить Preflight — возможно, потому что вы интегрируете Tailwind в существующий проект или потому что хотите предоставить свои собственные базовые стили — всё, что вам нужно сделать, это установить preflight на значение false в разделе corePlugins вашего файла tailwind.config.js:

tailwind.config.js
module.exports = {
  corePlugins: {
    preflight: false,
  }
}

© 2022 Tailwind Labs Inc.
https://tailwindcss.com/docs/preflight

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API