Классы макета в Tailwind CSS
Tailwind CSS предоставляет богатый набор классов, связанных с макетом, которые позволяют разработчикам с большой гибкостью управлять всеми аспектами страницы.
Далее мы подробно объясним некоторые ключевые классы, связанные с макетом.
1. Соотношение сторон
Классы соотношения сторон помогают задать соотношение сторон элемента, предотвращая его растяжение или сжатие в адаптивном дизайне.
Основные классы:
| Имя класса | CSS-свойства и значения | Описание |
|---|---|---|
aspect-auto | aspect-ratio: auto; | Этот класс сохраняет естественное соотношение сторон элемента без принудительных изменений. Он подходит, когда вы хотите, чтобы элемент автоматически подстраивал размер в соответствии со своим содержимым, а не был вынужден заполнять или сжиматься до определённого соотношения сторон. |
aspect-square | aspect-ratio: 1 / 1; | Этот класс принудительно устанавливает соотношение сторон элемента как 1:1, то есть ширина и высота равны; обычно используется для создания квадратных или круглых элементов. |
aspect-video | aspect-ratio: 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>
<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-1 | columns: 1; | Устанавливает количество колонок у элемента равным 1. |
columns-2 | columns: 2; | Устанавливает количество колонок у элемента равным 2. |
columns-3 | columns: 3; | Устанавливает количество колонок у элемента равным 3. |
columns-4 | columns: 4; | Устанавливает количество колонок у элемента равным 4. |
columns-5 | columns: 5; | Устанавливает количество колонок у элемента равным 5. |
columns-6 | columns: 6; | Устанавливает количество колонок у элемента равным 6. |
columns-7 | columns: 7; | Устанавливает количество колонок у элемента равным 7. |
columns-8 | columns: 8; | Устанавливает количество столбцов у элемента равным 8. |
columns-9 | columns: 9; | Устанавливает количество столбцов у элемента равным 9. |
columns-10 | columns: 10; | Устанавливает количество столбцов у элемента равным 10. |
columns-11 | columns: 11; | Устанавливает количество столбцов у элемента равным 11. |
columns-12 | columns: 12; | Устанавливает количество столбцов у элемента равным 12. |
columns-auto | columns: auto; | Устанавливает количество столбцов у элемента в значение auto, автоматически подстраивая ширину столбца в зависимости от содержимого. |
columns-3xs | columns: 16rem; /* 256px */ | Устанавливает ширину столбца у элемента в 16rem (256px). |
columns-2xs | columns: 18rem; /* 288px */ | Устанавливает ширину столбца у элемента в 18rem (288px). |
columns-xs | columns: 20rem; /* 320px */ | Устанавливает ширину столбца у элемента в 20rem (320px). |
columns-sm | columns: 24rem; /* 384px */ | Устанавливает ширину столбца у элемента в 24rem (384px). |
columns-md | columns: 28rem; /* 448px */ | Устанавливает ширину столбца у элемента в 28rem (448px). |
columns-lg | columns: 32rem; /* 512px */ | Устанавливает ширину столбца у элемента в 32rem (512px). |
columns-xl | columns: 36rem; /* 576px */ | Устанавливает ширину колонки элемента равной 36rem (576px). |
columns-2xl | columns: 42rem; /* 672px */ | Устанавливает ширину колонки элемента равной 42rem (672px). |
columns-3xl | columns: 48rem; /* 768px */ | Устанавливает ширину колонки элемента равной 48rem (768px). |
columns-4xl | columns: 56rem; /* 896px */ | Устанавливает ширину колонки элемента равной 56rem (896px). |
columns-5xl | `columns: 64rem; /* |
Пример
<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-auto | break-after: auto; | Позволяет содержимому естественно разрываться после этого элемента. |
break-after-avoid | break-after: avoid; | По возможности избегает разрыва после этого элемента. |
break-after-all | break-after: all; | Принудительно выполняет разрыв после этого элемента, даже если это не естественное место для разрыва. |
break-after-avoid-page | break-after: avoid-page; | По возможности избегает перехода на новую страницу после этого элемента, но допускает переход на новую колонку. |
break-after-page | break-after: page; | Принудительно начинает новую страницу после этого элемента, но не допускает новую колонку. |
break-after-left | break-after: left; | Принудительно выполняет разрыв после этого элемента, предпочитая левую страницу. |
break-after-right | break-after: right; | Принудительно выполняет разрыв после этого элемента, предпочитая правую страницу. |
break-after-column | break-after: column; | Принудительно начинает новую колонку после этого элемента, но не допускает новую страницу. |
Приведенные выше классы используются для управления разбиением на страницы или поведением разрыва колонок содержимого при печати или в многоколоночных макетах:
- break-after-autoПозволяет браузеру решать, следует ли делать разрыв после элемента.
- break-after-avoidУказывает браузеру по возможности избегать разрыва после элемента.
| Имя класса | CSS-свойства и значения | Описание |
|---|---|---|
break-before-auto | break-before: auto; | Позволяет содержимому естественно разрываться перед этим элементом. |
break-before-avoid | break-before: avoid; | По возможности избегать разрыва перед этим элементом. |
break-before-all | break-before: all; | Принудительно выполнить разрыв перед этим элементом, даже если это не естественное место для разрыва. |
break-before-avoid-page | break-before: avoid-page; | По возможности избегать разрыва на новую страницу перед этим элементом, но разрешить разрыв на новую колонку. |
break-before-page | break-before: page; | Принудительно начать новую страницу перед этим элементом, но не разрешать новую колонку. |
break-before-left | break-before: left; | Принудительно выполнить разрыв перед этим элементом, предпочитая левую страницу. |
break-before-right | break-before: right; | Принудительно выполнить разрыв перед этим элементом, предпочитая правую страницу. |
break-before-column | break-before: column; | Принудительно начать новую колонку перед этим элементом, но не разрешать новую страницу. |
Приведённые выше классы используются для управления разбиением на страницы или поведением разрыва колонок для содержимого в печатных или многоколоночных макетах.
- break-before-autoПозволяет браузеру решать, следует ли делать разрыв перед элементом.
- break-before-avoidСообщает браузеру о необходимости по возможности избегать разрыва перед элементом.
| Имя класса | CSS-свойства и значения | Описание |
|---|---|---|
break-inside-auto | break-inside: auto; | Позволяет содержимому естественно разрываться внутри этого элемента. |
break-inside-avoid | break-inside: avoid; | По возможности избегать разрыва внутри этого элемента. |
break-inside-avoid-page | break-inside: avoid-page; | По возможности избегать разрыва на новую страницу внутри этого элемента, но разрешать разрыв на новую колонку. |
break-inside-avoid-column | break-inside: avoid-column; | По возможности избегать разрыва на новую колонку внутри этого элемента, но разрешать разрыв на новую страницу. |
Приведённые выше классы используются для управления тем, разрешено ли содержимому разрываться внутри элемента при печати или в многоколоночных макетах.
- break-inside-autoПозволяет браузеру решать, следует ли выполнять разрыв внутри элемента.
- break-inside-avoidСообщает браузеру о необходимости по возможности избегать разрыва внутри элемента.
Пример
<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-clone | box-decoration-break: clone; | Указывает, что когда блок разбивается на несколько блоков (например, на границах колонок или страниц), каждый блок должен клонировать оформление исходного блока (границы, фоны и т. д.). |
box-decoration-slice | box-decoration-break: slice; | Указывает, что когда блок разбивается на несколько блоков, каждый блок должен "slice" оформление исходного блока так, чтобы оформление отображалось непрерывно на протяжении всех блоков. |
Приведенные выше классы используются для управления поведением оформления элемента (например, границ и фонов) в многоколоночных макетах или при постраничной разбивке.
- box-decoration-cloneЗаставляет каждый фрагмент блока отображать полное оформление.
- box-decoration-slice«Разрезает» оформление в точке разделения блока, сохраняя оформление визуально непрерывным.
Эти утилитарные классы помогают разработчикам лучше контролировать визуальный вид элементов в сложных макетах.
Пример
Привет<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>
2、box-content
Свойство CSS:
box-sizing: content-box;
Используйте утилитарный класс box-content, чтобы задать для свойства box-sizing элемента значение content-box. Это означает, что браузер добавляет границы и внутренние отступы сверх указанной ширины или высоты элемента.
Если размер элемента равен 100px × 100px, при границе 2px и внутреннем отступе 4px фактический отображаемый размер элемента будет 112px × 112px, а внутренняя область содержимого — 100px × 100px.

свойство display
Свойство display используется для управления типом отображения элемента и определяет, как элемент отображается на странице.
| Имя класса Tailwind | CSS-свойство и значение | Описание |
|---|---|---|
block | display: block; | Отображает элемент как блочный элемент, который занимает отдельную строку. |
inline-block | display: inline-block; | Отображает элемент как строчно-блочный элемент, который может располагаться в строке, имея при этом собственную ширину и высоту. |
inline | display: inline; | Отображает элемент как строчный элемент, который располагается рядом с другими строчными элементами. |
flex | display: flex; | Отображает элемент как flex-контейнер, позволяя использовать Flexbox-верстку. |
inline-flex | display: inline-flex; | Отображает элемент как строчный flex-контейнер, позволяя использовать Flexbox-верстку. |
table | display: table; | Отображает элемент как табличный элемент. |
inline-table | display: inline-table; | Отображает элемент как строчный табличный элемент. |
table-caption | display: table-caption; | Отображает элемент как подпись таблицы. |
table-cell | display: table-cell; | Отображает элемент как ячейку таблицы. |
table-column | display: table-column; | Отображает элемент как столбец таблицы. |
table-column-group | display: table-column-group; | Отображает элемент как группу столбцов таблицы. |
table-footer-group | display: table-footer-group; | Отображает элемент как группу нижнего колонтитула таблицы. |
table-header-group | display: table-header-group; | Отображает элемент как группу заголовка таблицы. |
table-row-group | display: table-row-group; | Отображает элемент как группу строк таблицы. |
table-row | display: table-row; | Отображает элемент как строку таблицы. |
flow-root | display: flow-root; | Отображает элемент как элемент flow-root, который создаёт BFC (контекст форматирования блока). |
grid | display: grid; | Отображает элемент как grid-контейнер, позволяя использовать CSS Grid layout. |
inline-grid | display: inline-grid; | Отображает элемент как строчный grid-контейнер, позволяя использовать CSS Grid layout. |
contents | display: contents; | Удаляет блочную модель элемента, так что его дочерние элементы отображаются непосредственно на его месте. |
list-item | display: list-item; | Отображает элемент как элемент списка. |
hidden | display: none; | Скрывает элемент, чтобы он не отображался на странице. |
Пример
<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-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-*Управляет положением плавающего элемента, часто используется для обтекания его текстом.
Основные классы:
| Имя класса Tailwind | CSS-свойство и значение | Описание |
|---|---|---|
float-start | float: inline-start; | Прижимает элемент к началу содержащего его блока. В языках LTR (слева направо) это обычно левая сторона; в языках RTL (справа налево) — обычно правая. |
float-end | float: inline-end; | Прижимает элемент к концу содержащего его блока. В языках LTR (слева направо) это обычно правая сторона; в языках RTL (справа налево) — обычно левая. |
float-right | float: right; | Прижимает элемент к правому краю содержащего блока. |
float-left | float: left; | Прижимает элемент к левому краю содержащего блока. |
float-none | float: 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-start | clear: inline-start; | Очищает плавающие элементы с начальной стороны элемента. В языках LTR (слева направо) это обычно левая сторона; в языках RTL (справа налево) это обычно правая сторона. |
clear-end | clear: inline-end; | Очищает плавающие элементы с конечной стороны элемента. В языках LTR (слева направо) это обычно правая сторона; в языках RTL (справа налево) это обычно левая сторона. |
clear-left | clear: left; | Очищает плавающие элементы с левой стороны элемента. |
clear-right | clear: right; | Очищает плавающие элементы с правой стороны элемента. |
clear-both | clear: both; | Очищает плавающие элементы с обеих сторон элемента. |
clear-none | clear: none; | Не очищает плавающие элементы, позволяя плавающим элементам следовать за элементом. |
Пример
<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
Ниже приведены утилитарные классы, используемые для управления контекстами наложения| Имя класса Tailwind | CSS-свойство и значение | Описание |
|---|---|---|
isolate | isolation: isolate; | Элемент создаст новый контекст наложения, что означает, что его элементы-потомки не будут перекрываться с внешними элементами, даже если у них более высокийz-indexзначение. |
isolation-auto | isolation: auto; | Контекст наложения элемента будет определяться пользовательским агентом, обычно так же, как когда неisolationустановлено свойство isolation, и элементы-потомки могут перекрываться с внешними элементами. |
Эти утилитарные классы позволяют разработчикам управлять поведением контекста наложения элемента, тем самым влияя на то, как элемент и его потомки участвуют в порядке наложения.
Класс isolate помогает создать изолированную среду, в которой на порядок наложения элемента не влияют внешние элементы, а isolation-auto позволяет браузеру обрабатывать контекст наложения согласно правилам по умолчанию.
Используйте утилитарные классы isolate и isolation-auto, чтобы управлять тем, должен ли элемент явно создавать новый контекст наложения.
Пример
<!-- ... -->
</div>
object-fit
Ниже приведены утилитарные классы, используемые для управления масштабированием содержимого заменяемого элемента, вместе с соответствующими CSS-свойствами:
| Имя класса | CSS-свойство и значение | Описание |
|---|---|---|
object-contain | object-fit: contain; | Сохраняет пропорции элемента и изменяет его размер так, чтобы он полностью помещался внутри контейнера, возможно, оставляя пустое пространство внутри контейнера. |
object-cover | object-fit: cover; | Сохраняет пропорции элемента и изменяет его размер так, чтобы полностью покрыть контейнер, возможно, обрезая некоторые части элемента. |
object-fill | object-fit: fill; | Игнорирует пропорции элемента и растягивает или сжимает его, чтобы полностью заполнить контейнер. |
object-none | object-fit: none; | Сохраняет исходный размер элемента без масштабирования. |
object-scale-down | object-fit: scale-down; | Сохраняет пропорции элемента, аналогичноcontainаналогично, но выбирает меньший размер, чтобы поместиться в контейнер, не оставляя пустого пространства. |
Используйте object-cover, чтобы задать размер содержимого элемента для покрытия его контейнера:
Другие расширения