Классы макета в Tailwind CSS

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

Далее мы подробно объясним некоторые ключевые классы, связанные с макетом.

1. Соотношение сторон

Классы соотношения сторон помогают задать соотношение сторон элемента, предотвращая его растяжение или сжатие в адаптивном дизайне.

Основные классы:

Имя классаCSS-свойства и значенияОписание
aspect-autoaspect-ratio: auto;Этот класс сохраняет естественное соотношение сторон элемента без принудительных изменений. Он подходит, когда вы хотите, чтобы элемент автоматически подстраивал размер в соответствии со своим содержимым, а не был вынужден заполнять или сжиматься до определённого соотношения сторон.
aspect-squareaspect-ratio: 1 / 1;Этот класс принудительно устанавливает соотношение сторон элемента как 1:1, то есть ширина и высота равны; обычно используется для создания квадратных или круглых элементов.
aspect-videoaspect-ratio: 16 / 9;Этот класс принудительно задаёт соотношение сторон элемента 16:9 — распространённое соотношение сторон видео, подходящее для элементов, которым нужно отображать видео или имитировать видеопроигрыватель.

Пример

<!-- Сохранить соотношение сторон 16:9 -->
<div class="aspect-ratio">
  <img src="video.jpg" alt="Видео" class="object-cover">
</div>

Попробуйте сами »

2. Контейнер

Класс Container делает элементы-контейнеры адаптивными к разным размерам экрана; обычно используется для задания максимальной ширины содержимого.

Основные классы:

  • container: Делает элемент адаптивным контейнером.
  • mx-auto: Центрирует контейнер по горизонтали.
Имя класса CSS-свойства и значения Описание
container width: 100%; По умолчанию ширина контейнера составляет 100%, занимая всю ширину родительского элемента.
sm:container max-width: 640px; Когда ширина экрана >= 640px, max-width контейнера составляет 640px.
md:container max-width: 768px; Когда ширина экрана >= 768px, max-width контейнера составляет 768px.
lg:container max-width: 1024px; Когда ширина экрана >= 1024px, max-width контейнера составляет 1024px.
xl:container max-width: 1280px; Когда ширина экрана >= 1280px, max-width контейнера равен 1280px.
2xl:container max-width: 1536px; Когда ширина экрана >= 1536px, max-width контейнера равен 1536px.

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

Пример

<div class="container mx-auto">
  <!-- Содержимое -->
</div>

<div class="lg:container mx-auto">
  <!-- Содержимое с максимальной шириной 1024px на больших экранах -->
</div>

В этих примерах первый<div>всегда будет занимать 100% ширины, а второй<div>на больших экранах (lg) и выше его максимальная ширина будет ограничена 1024px.mx-autoКласс используется для горизонтального центрирования контейнера.

3. Columns

Классы Columns используются для реализации многоколоночных макетов.

Вы можете управлять количеством колонок и промежутком между колонками.

Основные классы:

  • columns-{n}: Задает количество колонок.
  • space-x-{size}: Задает промежуток между колонками.
Имя классаCSS-свойства и значенияОписание
columns-1columns: 1;Устанавливает количество колонок у элемента равным 1.
columns-2columns: 2;Устанавливает количество колонок у элемента равным 2.
columns-3columns: 3;Устанавливает количество колонок у элемента равным 3.
columns-4columns: 4;Устанавливает количество колонок у элемента равным 4.
columns-5columns: 5;Устанавливает количество колонок у элемента равным 5.
columns-6columns: 6;Устанавливает количество колонок у элемента равным 6.
columns-7columns: 7;Устанавливает количество колонок у элемента равным 7.
columns-8columns: 8;Устанавливает количество столбцов у элемента равным 8.
columns-9columns: 9;Устанавливает количество столбцов у элемента равным 9.
columns-10columns: 10;Устанавливает количество столбцов у элемента равным 10.
columns-11columns: 11;Устанавливает количество столбцов у элемента равным 11.
columns-12columns: 12;Устанавливает количество столбцов у элемента равным 12.
columns-autocolumns: auto;Устанавливает количество столбцов у элемента в значение auto, автоматически подстраивая ширину столбца в зависимости от содержимого.
columns-3xscolumns: 16rem; /* 256px */Устанавливает ширину столбца у элемента в 16rem (256px).
columns-2xscolumns: 18rem; /* 288px */Устанавливает ширину столбца у элемента в 18rem (288px).
columns-xscolumns: 20rem; /* 320px */Устанавливает ширину столбца у элемента в 20rem (320px).
columns-smcolumns: 24rem; /* 384px */Устанавливает ширину столбца у элемента в 24rem (384px).
columns-mdcolumns: 28rem; /* 448px */Устанавливает ширину столбца у элемента в 28rem (448px).
columns-lgcolumns: 32rem; /* 512px */Устанавливает ширину столбца у элемента в 32rem (512px).
columns-xlcolumns: 36rem; /* 576px */Устанавливает ширину колонки элемента равной 36rem (576px).
columns-2xlcolumns: 42rem; /* 672px */Устанавливает ширину колонки элемента равной 42rem (672px).
columns-3xlcolumns: 48rem; /* 768px */Устанавливает ширину колонки элемента равной 48rem (768px).
columns-4xlcolumns: 56rem; /* 896px */Устанавливает ширину колонки элемента равной 56rem (896px).
columns-5xl`columns: 64rem; /*

Пример

<!-- Создать макет из 3 колонок -->
<div class="columns-3 space-x-4">
  <p>Колонка 1</p>
  <p>Колонка 2</p>
  <p>Колонка 3</p>
</div>

Попробуйте сами »

4. Пагинация

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

Основные классы:

  • break-after-{value}: Управляет поведением после разрыва страницы/колонки.
  • break-before-{value}: Управляет поведением перед разрывом страницы/колонки.
  • break-inside-{value}: Управляет поведением разрывов внутри элемента.
Имя классаCSS-свойства и значенияОписание
break-after-autobreak-after: auto;Позволяет содержимому естественно разрываться после этого элемента.
break-after-avoidbreak-after: avoid;По возможности избегает разрыва после этого элемента.
break-after-allbreak-after: all;Принудительно выполняет разрыв после этого элемента, даже если это не естественное место для разрыва.
break-after-avoid-pagebreak-after: avoid-page;По возможности избегает перехода на новую страницу после этого элемента, но допускает переход на новую колонку.
break-after-pagebreak-after: page;Принудительно начинает новую страницу после этого элемента, но не допускает новую колонку.
break-after-leftbreak-after: left;Принудительно выполняет разрыв после этого элемента, предпочитая левую страницу.
break-after-rightbreak-after: right;Принудительно выполняет разрыв после этого элемента, предпочитая правую страницу.
break-after-columnbreak-after: column;Принудительно начинает новую колонку после этого элемента, но не допускает новую страницу.

Приведенные выше классы используются для управления разбиением на страницы или поведением разрыва колонок содержимого при печати или в многоколоночных макетах:

  • break-after-autoПозволяет браузеру решать, следует ли делать разрыв после элемента.
  • break-after-avoidУказывает браузеру по возможности избегать разрыва после элемента.
Имя классаCSS-свойства и значенияОписание
break-before-autobreak-before: auto;Позволяет содержимому естественно разрываться перед этим элементом.
break-before-avoidbreak-before: avoid;По возможности избегать разрыва перед этим элементом.
break-before-allbreak-before: all;Принудительно выполнить разрыв перед этим элементом, даже если это не естественное место для разрыва.
break-before-avoid-pagebreak-before: avoid-page;По возможности избегать разрыва на новую страницу перед этим элементом, но разрешить разрыв на новую колонку.
break-before-pagebreak-before: page;Принудительно начать новую страницу перед этим элементом, но не разрешать новую колонку.
break-before-leftbreak-before: left;Принудительно выполнить разрыв перед этим элементом, предпочитая левую страницу.
break-before-rightbreak-before: right;Принудительно выполнить разрыв перед этим элементом, предпочитая правую страницу.
break-before-columnbreak-before: column;Принудительно начать новую колонку перед этим элементом, но не разрешать новую страницу.

Приведённые выше классы используются для управления разбиением на страницы или поведением разрыва колонок для содержимого в печатных или многоколоночных макетах.

  • break-before-autoПозволяет браузеру решать, следует ли делать разрыв перед элементом.
  • break-before-avoidСообщает браузеру о необходимости по возможности избегать разрыва перед элементом.
Имя классаCSS-свойства и значенияОписание
break-inside-autobreak-inside: auto;Позволяет содержимому естественно разрываться внутри этого элемента.
break-inside-avoidbreak-inside: avoid;По возможности избегать разрыва внутри этого элемента.
break-inside-avoid-pagebreak-inside: avoid-page;По возможности избегать разрыва на новую страницу внутри этого элемента, но разрешать разрыв на новую колонку.
break-inside-avoid-columnbreak-inside: avoid-column;По возможности избегать разрыва на новую колонку внутри этого элемента, но разрешать разрыв на новую страницу.

Приведённые выше классы используются для управления тем, разрешено ли содержимому разрываться внутри элемента при печати или в многоколоночных макетах.

  • break-inside-autoПозволяет браузеру решать, следует ли выполнять разрыв внутри элемента.
  • break-inside-avoidСообщает браузеру о необходимости по возможности избегать разрыва внутри элемента.

Пример

<div class="columns-2">
  <p>Ну, позвольте мне кое-что вам рассказать, ...</p>
  <p class="break-after-column">Конечно, продолжим с нашим содержимым...</p>
  <p>Может быть, мы можем...</p>
  <p>Если вы думаете, что это...</p>
</div>

В этом примере,<div>элемент настроен на двухколоночный макет (columns-2), который содержит четыре<p>абзаца. Второй<p>абзац имеетbreak-after-columnкласс, который принудительно выполняет разрыв колонки после этого абзаца, но не допускает разрыва страницы. Это означает, что если содержимого достаточно, содержимое после второго абзаца начнётся в новой колонке, а не продолжится на следующей строке той же колонки. Остальные абзацы не имеют специальных директив разрыва колонок, поэтому они будут естественно перетекать в соответствии со своим содержимым.

5. Разрыв текста

Ниже приведены утилитарные классы в Tailwind CSS, используемые для управления тем, как фрагменты элементов отображаются на нескольких строках, в колонках или на страницах, вместе с соответствующими свойствами CSS:

Имя классаCSS-свойство и значениеОписание
box-decoration-clonebox-decoration-break: clone;Указывает, что когда блок разбивается на несколько блоков (например, на границах колонок или страниц), каждый блок должен клонировать оформление исходного блока (границы, фоны и т. д.).
box-decoration-slicebox-decoration-break: slice;Указывает, что когда блок разбивается на несколько блоков, каждый блок должен "slice" оформление исходного блока так, чтобы оформление отображалось непрерывно на протяжении всех блоков.

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

  • box-decoration-cloneЗаставляет каждый фрагмент блока отображать полное оформление.
  • box-decoration-slice«Разрезает» оформление в точке разделения блока, сохраняя оформление визуально непрерывным.

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

Пример

<span class="box-decoration-slice bg-gradient-to-r from-indigo-600 to-pink-500 text-white px-2 ...">
  Привет<br />
  Мир
</span>
<span class="box-decoration-clone bg-gradient-to-r from-indigo-600 to-pink-500 text-white px-2 ...">
  Привет<br />
  Мир
</span>

Попробуйте »

6. Размеры блока

Tailwind CSS предоставляет два утилитарных класса для управления блочной моделью элемента (box-sizing):

  • box-border: Вычисляет общий размер элемента, включая внутренние отступы и границы.
  • box-content: Вычисляет размер элемента, исключая внутренние отступы и границы.

1、box-border

Свойство CSS:

box-sizing: border-box;

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

Если размер элемента равен 100px × 100px, при границе 2px и внутреннем отступе 4px общий отображаемый размер элемента составит 112px × 112px.

Пример

<div class="box-content h-32 w-32 p-4 border-4 ...">
  <!-- ... -->
</div>

2、box-content

Свойство CSS:

box-sizing: content-box;

Используйте утилитарный класс box-content, чтобы задать для свойства box-sizing элемента значение content-box. Это означает, что браузер добавляет границы и внутренние отступы сверх указанной ширины или высоты элемента.

Если размер элемента равен 100px × 100px, при границе 2px и внутреннем отступе 4px фактический отображаемый размер элемента будет 112px × 112px, а внутренняя область содержимого — 100px × 100px.

Пример

<div class="box-content h-32 w-32 p-4 border-4 ...">
  <!-- ... -->
</div>

Попробуйте »

свойство display

Свойство display используется для управления типом отображения элемента и определяет, как элемент отображается на странице.

Имя класса TailwindCSS-свойство и значениеОписание
blockdisplay: block;Отображает элемент как блочный элемент, который занимает отдельную строку.
inline-blockdisplay: inline-block;Отображает элемент как строчно-блочный элемент, который может располагаться в строке, имея при этом собственную ширину и высоту.
inlinedisplay: inline;Отображает элемент как строчный элемент, который располагается рядом с другими строчными элементами.
flexdisplay: flex;Отображает элемент как flex-контейнер, позволяя использовать Flexbox-верстку.
inline-flexdisplay: inline-flex;Отображает элемент как строчный flex-контейнер, позволяя использовать Flexbox-верстку.
tabledisplay: table;Отображает элемент как табличный элемент.
inline-tabledisplay: inline-table;Отображает элемент как строчный табличный элемент.
table-captiondisplay: table-caption;Отображает элемент как подпись таблицы.
table-celldisplay: table-cell;Отображает элемент как ячейку таблицы.
table-columndisplay: table-column;Отображает элемент как столбец таблицы.
table-column-groupdisplay: table-column-group;Отображает элемент как группу столбцов таблицы.
table-footer-groupdisplay: table-footer-group;Отображает элемент как группу нижнего колонтитула таблицы.
table-header-groupdisplay: table-header-group;Отображает элемент как группу заголовка таблицы.
table-row-groupdisplay: table-row-group;Отображает элемент как группу строк таблицы.
table-rowdisplay: table-row;Отображает элемент как строку таблицы.
flow-rootdisplay: flow-root;Отображает элемент как элемент flow-root, который создаёт BFC (контекст форматирования блока).
griddisplay: grid;Отображает элемент как grid-контейнер, позволяя использовать CSS Grid layout.
inline-griddisplay: inline-grid;Отображает элемент как строчный grid-контейнер, позволяя использовать CSS Grid layout.
contentsdisplay: contents;Удаляет блочную модель элемента, так что его дочерние элементы отображаются непосредственно на его месте.
list-itemdisplay: list-item;Отображает элемент как элемент списка.
hiddendisplay: none;Скрывает элемент, чтобы он не отображался на странице.

Пример

<div class="relative rounded-xl overflow-auto">
    <div class="mx-auto max-w-xs bg-white shadow-xl p-4 text-slate-500 text-sm leading-6 sm:text-base sm:leading-7 dark:bg-slate-800 dark:text-slate-400">
При управлении потоком текста используйте CSS-свойство
    <span class="inline bg-sky-100 font-bold text-sm text-slate-900 font-mono rounded dark:bg-slate-600 dark:text-slate-200">display: inline</span>
заставит текст внутри элемента переноситься нормально.
    <br>
    <br>
А при использовании свойства<span class="inline-block bg-sky-100 font-bold text-sm text-slate-900 font-mono rounded dark:bg-slate-600 dark:text-slate-200">display: inline-block</span>
перенесёт элемент, не давая его внутреннему тексту выходить за пределы родительского элемента.
    <br>
    <br>
Наконец, при использовании свойства<span class="block bg-sky-100 font-bold text-sm text-slate-900 font-mono rounded dark:bg-slate-600 dark:text-slate-200">display: block</span>
заставит элемент занять собственную строку и заполнить родительский элемент.
    </div>
</div>

Попробуйте »

Используйте служебные классы table, table-row, table-cell, table-caption, table-column, table-column-group, table-header-group, table-row-group и table-footer-group, чтобы создавать элементы, которые ведут себя как соответствующие элементы таблицы.

Пример

<div class="table w-full ...">
  <div class="table-header-group ...">
    <div class="table-row">
      <div class="table-cell text-left ...">Песня</div>
      <div class="table-cell text-left ...">Исполнитель</div>
      <div class="table-cell text-left ...">Год</div>
    </div>
  </div>
  <div class="table-row-group">
    <div class="table-row">
      <div class="table-cell ...">The Sliding Mr. Bones (Next Stop, Pottersville)</div>
      <div class="table-cell ...">Malcolm Lockyer</div>
      <div class="table-cell ...">1961</div>
    </div>
    <div class="table-row">
      <div class="table-cell ...">Witchy Woman</div>
      <div class="table-cell ...">The Eagles</div>
      <div class="table-cell ...">1972</div>
    </div>
    <div class="table-row">
      <div class="table-cell ...">Shining Star</div>
      <div class="table-cell ...">Earth, Wind, and Fire</div>
      <div class="table-cell ...">1975</div>
    </div>
  </div>
</div>

Попробуйте »

Float

float-*Управляет положением плавающего элемента, часто используется для обтекания его текстом.

Основные классы:

Имя класса TailwindCSS-свойство и значениеОписание
float-startfloat: inline-start;Прижимает элемент к началу содержащего его блока. В языках LTR (слева направо) это обычно левая сторона; в языках RTL (справа налево) — обычно правая.
float-endfloat: inline-end;Прижимает элемент к концу содержащего его блока. В языках LTR (слева направо) это обычно правая сторона; в языках RTL (справа налево) — обычно левая.
float-rightfloat: right;Прижимает элемент к правому краю содержащего блока.
float-leftfloat: left;Прижимает элемент к левому краю содержащего блока.
float-nonefloat: none;Запрещает обтекание элемента, оставляя его в обычном потоке документа.

Пример

<!-- Создать плавающее изображение -->
<div class="float-right ml-6">
    <div class="relative aspect-w-4 aspect-h-5 sm:aspect-w-16 sm:aspect-h-9 w-20 sm:w-44">
    <img class="object-cover rounded-lg" src="/static.jyshare.com/images/demo/demo2.jpg?v=2">
    <div class="absolute inset-0 ring-1 ring-inset ring-black/10 rounded-lg"></div>
    </div>
</div>

Попробуйте »

Очистка обтекания

Утилитарные классы в Tailwind CSS для управления тем, как элемент очищает обтекание, а также соответствующие им CSS-свойства:

Имя классаCSS-свойство и значениеОписание
clear-startclear: inline-start;Очищает плавающие элементы с начальной стороны элемента. В языках LTR (слева направо) это обычно левая сторона; в языках RTL (справа налево) это обычно правая сторона.
clear-endclear: inline-end;Очищает плавающие элементы с конечной стороны элемента. В языках LTR (слева направо) это обычно правая сторона; в языках RTL (справа налево) это обычно левая сторона.
clear-leftclear: left;Очищает плавающие элементы с левой стороны элемента.
clear-rightclear: right;Очищает плавающие элементы с правой стороны элемента.
clear-bothclear: both;Очищает плавающие элементы с обеих сторон элемента.
clear-noneclear: none;Не очищает плавающие элементы, позволяя плавающим элементам следовать за элементом.

Пример

<article>
  <img class="float-left ..." src="path/to/image.jpg">
  <img class="float-right ..." src="path/to/image.jpg">
  <p class="clear-left ...">Тестовый текстовый контент...</p>
</article>

Попробуйте »

isolate

Ниже приведены утилитарные классы, используемые для управления контекстами наложения
Имя класса TailwindCSS-свойство и значениеОписание
isolateisolation: isolate;Элемент создаст новый контекст наложения, что означает, что его элементы-потомки не будут перекрываться с внешними элементами, даже если у них более высокийz-indexзначение.
isolation-autoisolation: auto;Контекст наложения элемента будет определяться пользовательским агентом, обычно так же, как когда неisolationустановлено свойство isolation, и элементы-потомки могут перекрываться с внешними элементами.

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

Класс isolate помогает создать изолированную среду, в которой на порядок наложения элемента не влияют внешние элементы, а isolation-auto позволяет браузеру обрабатывать контекст наложения согласно правилам по умолчанию.

Используйте утилитарные классы isolate и isolation-auto, чтобы управлять тем, должен ли элемент явно создавать новый контекст наложения.

Пример

<div class="isolate ...">
  <!-- ... -->
</div>
‌

object-fit

Ниже приведены утилитарные классы, используемые для управления масштабированием содержимого заменяемого элемента, вместе с соответствующими CSS-свойствами:

Имя классаCSS-свойство и значениеОписание
object-containobject-fit: contain;Сохраняет пропорции элемента и изменяет его размер так, чтобы он полностью помещался внутри контейнера, возможно, оставляя пустое пространство внутри контейнера.
object-coverobject-fit: cover;Сохраняет пропорции элемента и изменяет его размер так, чтобы полностью покрыть контейнер, возможно, обрезая некоторые части элемента.
object-fillobject-fit: fill;Игнорирует пропорции элемента и растягивает или сжимает его, чтобы полностью заполнить контейнер.
object-noneobject-fit: none;Сохраняет исходный размер элемента без масштабирования.
object-scale-downobject-fit: scale-down;Сохраняет пропорции элемента, аналогичноcontainаналогично, но выбирает меньший размер, чтобы поместиться в контейнер, не оставляя пустого пространства.

Используйте object-cover, чтобы задать размер содержимого элемента для покрытия его контейнера:

Пример

<div class="bg-indigo-300 ...">
  <img class="object-cover h-48 w-96 ...">
</div>

Попробуйте »
Другие расширения