Как отцентровать элемент css
Перейти к содержимому

Как отцентровать элемент css

  • автор:

Шпаргалка по Layout

Схлопывание margin: Вертикальный отступ между двумя соседними элементами равен максимальному отступу между ними. Если отступ одного элемента равен 50px , а второго 30px , то отступ между ними будет 50px

Выпадение margin: Если внутри родительского блока расположить блок и задать ему отступ сверху, то внутренний блок прижмётся к верхнему краю родительского, а у родительского элемента появится отступ сверху. То есть верхний отступ внутреннего элемента «выпадает» из родительского элемента. Будет выбран максимальный margin

Чтобы избавиться от эффекта выпадания, можно задать родительскому элементу внутренний отступ (паддинг) сверху или добавить рамку сверху

Как отцентровать элемент?
  1. Задать width
  2. Задать margin: 0 auto
Проблема width 100%

CSS-свойство width задаёт не общую ширину блока, а только ширину содержания. Общая ширина блока затем складывается из трёх компонентов: ширины содержания, внутренних отступов и ширины рамок слева и справа. Ширина 100% заставит поля быть такой же ширины, как родительский блок, а паддинг добавит отступы. За счёт отступов поле станет шире своего контейнера.

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

Свойство display: inline-block

элементы с блочно-строчным боксом. В HTML нет элементов с блочно-строчным боксом по умолчанию, но любой элемент можно переключить такой режим отображения, задав ему свойство display со значением inline-block .

От строчных им достались следующие черты:

  • по ширине они ужимаются под своё содержимое;
  • могут располагаться в одну строку;
  • реагируют на вертикальное выравнивание, vertical-align ;
  • реагируют на горизонтальное выравнивание, text-align , заданное у родителя.
  • им можно задавать размеры с помощью width и height ;
  • а также внешние и внутренние отступы и рамки, которые работают во всех направлениях и увеличивают размер элемента.
Float — управление потоком

Если мы задаём элементу свойство float:left или float:right , то он прижимается к левому или правому краю, а также начинает ужиматься по ширине под своё содержимое. С той стороны, которая не прижата к краю родителя, появляется свободное место. Это место может быть занято другими элементами. Зафлоаченному элементу можно явно задавать размеры и отступы.

Зафлоаченные элементы выпадают из потока, но лишь частично:

  • Блочные элементы, которые идут в коде после зафлоаченного блока, перестают его замечать. Они подтягиваются вверх и занимают его место, как будто его и нет.
  • Строчные же элементы, расположенные в коде после зафлоаченного блока, начинают обтекать его со свободной стороны

Такое поведение флоатов даёт интересные эффекты:

  1. Эффект прохождения сквозь блоки. Проявляется, когда зафлоаченный элемент выше, чем несколько последующих за ним блоков.
  2. Эффект выпадания из родителя или схлопывания родителя. Проявляется тогда, когда все дочерние блоки в родителе зафлоачены. В этом случае родитель схлопывается по высоте, как будто в нём нет содержимого, а блоки выпадают из него.

Flex

  • Блоки легко становятся гибкими, элементы могут сжиматься и растягиваться, заполняя пространство.
  • Нет никаких проблем с тем чтобы выровнять элементы по вертикали и горизонтали.
  • Неважно, в каком порядке расположены HTML-элементы. Вы можете изменить их порядок через CSS.
  • Идеально выровнить элемент(ы) по центру обоих осей используя лишь margin: auto
  • По-умолчанию можно создать блоки одинаковой высоты, что невозможно сделать в блочной модели
  • Внешние отступы не схлопываются и не выпадают
Направление

Свойство flex-direction [ default row (→↓), row-reverse (←↓), column (↓→), column-reverse (↑→)] позволяет разворачивать главную ось во всех направлениях (а поперечную вниз\влево).

Распределение

Cвойство justify-content [ flex-start , flex-end , center , space-between , space-around ] определяет, как будут выровнены элементы вдоль главной оси [в начале, в конце, по-центру, равномерно (прижавшись к краям), равномерно (и 50% удалены от краев) ]

Свойство align-items [ default stretch , flex-start , flex-end , center , baseline ] определяет то, как будут выровнены элементы вдоль поперечной оси [ элементы растягиваются на всю «высоту» флекс-контейнера, в начале, в конце, по-центру, выравниваются по базовой линии текста внутри них]

Свойство align-self [ default stretch , flex-start , flex-end , center , baseline ] задает поперечное выравнивание отдельному элементу для самих флекс-элементов, а не для флекс-контейнера.

Перенос

Свойство flex-wrap [default nowrap , wrap , wrap-reverse ] позволяет переносить элементы на следующий ряд. По-умолчанию элементы не переносятся и будут сжиматься до минимально возможной ширины (указание ширины это не исправит). Если перестанут помещаться в контейнер и после уменьшения, то выйдут за его пределы, но продолжат располагаться в один ряд

Выравнивание Рядов

Свойство align-content [default stretch , flex-start , flex-end , center , space-between , space-around ]управляет выравниванием рядов флекс-элементов вдоль поперечной оси. Он действует на всю структуру контейнера (в отличии от align-items, который выравнивает элементы по своему ряду)

stretch растягивает ряды флекс-элементов, при этом оставшееся свободное место между ними делится поровну. Отображение строк при при этом зависит от значения align-items :

  1. Если у align-items задано значение stretch , то элементы в строках растягиваются на всю высоту своей строки.
  2. Если значение отлично от stretch , то элементы в строках ужимаются под своё содержимое и выравниваются в строках в зависимости от значения align-items .
Поля ввода с динамической шириной

Решить эту задачу можно только при помощи флексбокса. Превратим контейнер поля ввода во флекс-контейнер, все элементы внутри него превратятся во флекс-элементы, базовый размер которых будет зависеть от их содержания — flex-basis: auto; . И останется только задать ненулевой коэффициент растягивания полям ввода.

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

Чтобы справиться с этими проблемами, надо задать всем элементам кроме полей ввода нулевой коэффициент сжатия, а самим полям ввода явно прописать минимальную ширину.

Центрировать элемент внутри grid сетки

Как можно центрировать элемент внутри грид сетки (если он один, а сетка рассчитана на несколько)? Смысл следующий: у родителя может быть 3 элемента и тогда всё отлично. Но если элементов меньше 3х, они прижимаются к левому краю. Как можно сохранить гриды и при этом центрировать элементы, применив нечто вроде justify-content: center?

.content < display: grid; grid-template-columns: repeat(3, 1fr); max-width: 300px; border: 1px solid #000; >.block

Отслеживать

2,129 3 3 золотых знака 5 5 серебряных знаков 18 18 бронзовых знаков

Конфигурация

Руководство по настройке и кастомизации Вашей установки Tailwind.

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

По умолчанию Tailwind будет искать необязательный файл tailwind.config.js в корне Вашего проекта, где вы можете определить любые настройки.

tailwind.config.js

module.exports =  content: ['./src/**/*.'], theme:  colors:  'blue': '#1fb6ff', 'purple': '#7e5bef', 'pink': '#ff49db', 'orange': '#ff7849', 'green': '#13ce66', 'yellow': '#ffc82c', 'gray-dark': '#273444', 'gray': '#8492a6', 'gray-light': '#d3dce6', >, fontFamily:  sans: ['Graphik', 'sans-serif'], serif: ['Merriweather', 'serif'], >, extend:  spacing:  '8xl': '96rem', '9xl': '128rem', >, borderRadius:  '4xl': '2rem', > > >, >

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

Создание вашего файла конфигурации

Создайте файл конфигурации Tailwind для своего проекта с помощью утилиты Tailwind CLI, включенной после установки пакета npm tailwindcss :

npx tailwindcss init

Это создаст минимальный файл tailwind.config.js в корне Вашего проекта:

tailwind.config.js

module.exports =  content: [], theme:  extend: >, >, plugins: [], >

Использование другого имени файла

Чтобы использовать имя, отличное от tailwind.config.js , передайте его в качестве аргумента в командной строке:

npx tailwindcss init tailwindcss-config.js

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

npx tailwindcss -c ./tailwindcss-config.js -i input.css -o output.css

Если вы используете Tailwind в качестве плагина PostCSS, вам нужно будет указать собственный путь конфигурации в конфигурации PostCSS:

postcss.config.js

module.exports =  plugins:  tailwindcss:  config: './tailwindcss-config.js' >, >, >

В качестве альтернативы вы можете указать свой пользовательский путь конфигурации с помощью директивы @config :

@config "./tailwindcss-config.js"; @tailwind base; @tailwind components; @tailwind utilities;

Узнайте больше о директиве @config в документации Функции и директивы documentation.

Создание файла конфигурации PostCSS

Используйте флаг -p , если вы хотите также сгенерировать базовый файл postcss.config.js вместе с файлом tailwind.config.js :

npx tailwindcss init -p

Это сгенерирует в Вашем проекте файл postcss.config.js , который выглядит следующим образом:

postcss.config.js

module.exports =  plugins:  tailwindcss: >, autoprefixer: >, >, >

Строим всю конфигурацию по умолчанию

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

Если вы предпочитаете создать полный файл конфигурации, включающий всю конфигурацию Tailwind по умолчанию, используйте параметр —full :

npx tailwindcss init --full

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

Варианты конфигурации

Содержимое

В разделе content вы настраиваете пути ко всем вашим HTML-шаблонам, компонентам JS и любым другим файлам, которые содержат имена классов Tailwind.

tailwind.config.js

module.exports =  content: [ './pages/**/*.', './components/**/*.', ], // . >

Дополнительные сведения о настройке источников контента смотрите в документации Конфигурация содержимого.

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

tailwind.config.js

module.exports =  // . theme:  colors:  'blue': '#1fb6ff', 'purple': '#7e5bef', 'pink': '#ff49db', 'orange': '#ff7849', 'green': '#13ce66', 'yellow': '#ffc82c', 'gray-dark': '#273444', 'gray': '#8492a6', 'gray-light': '#d3dce6', >, fontFamily:  sans: ['Graphik', 'sans-serif'], serif: ['Merriweather', 'serif'], >, extend:  spacing:  '8xl': '96rem', '9xl': '128rem', >, borderRadius:  '4xl': '2rem', > > > >

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

Раздел plugins позволяет вам регистрировать плагины в Tailwind, которые можно использовать для создания дополнительных утилит, компонентов, базовых стилей или пользовательских вариантов.

tailwind.config.js

module.exports =  // . plugins: [ require('@tailwindcss/forms'), require('@tailwindcss/aspect-ratio'), require('@tailwindcss/typography'), require('tailwindcss-children'), ], >

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

Раздел presets позволяет вам указать Вашу собственную базовую конфигурацию вместо использования базовой конфигурации Tailwind по умолчанию.

tailwind.config.js

module.exports =  // . presets: [ require('@acmecorp/base-tailwind-config') ], // Индивидуальные настройки проекта theme:  //. >, >

Узнайте больше о предустановках в документации о пресетах.

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

Например, вы можете добавить префикс tw- , установив опцию prefix следующим образом:

tailwind.config.js

module.exports =  prefix: 'tw-', >

Теперь каждый класс будет сгенерирован с настроенным префиксом:

.tw-text-left  text-align: left; > .tw-text-center  text-align: center; > .tw-text-right  text-align: right; > /* и так далее */

Важно понимать, что этот префикс добавляется после любых модификаторов вариантов. Это означает, что классы с адаптивными модификаторами или модификаторами состояния, такими как sm: или hover: , по-прежнему будут иметь модификатор ответа или состояния первого, с вашим настраиваемым префиксом, появляющимся после двоеточия:

div class="tw-text-lg md:tw-text-xl tw-bg-red-500 hover:tw-bg-blue-500"> div>

Модификатор тире для отрицательных значений должен быть добавлен перед вашим префиксом, поэтому -mt-8 станет -tw-mt-8 , если вы настроили tw- в качестве префикса:

div class="-tw-mt-8"> div>

Префиксы добавляются только к классам, созданным Tailwind; префикс не будет добавлен к вашим собственным пользовательским классам.

Это означает, что если вы добавите свою собственную утилиту, например:

@layer utilities  .bg-brand-gradient  /* . */ > >

…у сгенерированных вариантов не будет вашего настроенного префикса:

.bg-brand-gradient  /* . */ > .hover\:bg-brand-gradient:hover  /* . */ >

Если вы хотите добавить префикс к своим собственным утилитам, просто добавьте префикс в определение класса:

@layer utilities  .tw-bg-brand-gradient  /* . */ > >

Опция important позволяет вам контролировать, должны ли утилиты Tailwind помечаться !important . Это может быть действительно полезно при использовании Tailwind с существующим CSS, который имеет селекторы высокой специфичности.

Чтобы сгенерировать утилиты как !important , установите ключ important в параметрах конфигурации на true :

tailwind.config.js

module.exports =  important: true, >

Теперь все служебные классы Tailwind будут сгенерированы как !important :

.leading-none  line-height: 1 !important; > .leading-tight  line-height: 1.25 !important; > .leading-snug  line-height: 1.375 !important; > /* и так далее */

Это также относится к любым пользовательским утилитам, которые вы определяете в своем CSS с помощью директивы @layer utilities directive:

/* Input */ @layer utilities  .bg-brand-gradient  background-image: linear-gradient(#3490dc, #6574cd); > > /* Output */ .bg-brand-gradient  background-image: linear-gradient(#3490dc, #6574cd) !important; >

Стратегия селектора

Установка для important значения true может вызвать некоторые проблемы при включении сторонних JS-библиотек, которые добавляют встроенные стили к Вашим элементам. В таких случаях утилиты Tailwind !important побеждают встроенные стили, которые могут нарушить ваш намеченный дизайн.

Чтобы обойти это, вы можете вместо этого установить important в селектор идентификаторов, например #app :

tailwind.config.js

module.exports =  // . important: '#app', >

Эта конфигурация будет префикс всех Ваших утилит с данным селектором, эффективно увеличивая их специфичность, не делая их на самом деле !important .

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

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

html> style> .high-specificity .nested .selector  color: blue; > style> body id="app"> div class="high-specificity"> div class="nested"> div class="selector text-red-500"> div> div> div> div class="text-red-500" style="color: #bada55;"> div> body> html>

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

Важный модификатор

Кроме того, вы можете сделать любую утилиту важной, добавив в начало символ ! :

p class="font-bold !font-medium"> Это будет средним шрифтом, несмотря на то, что полужирный шрифт появляется позже в CSS. p>

! всегда стоит в начале имени утилиты, после любых вариантов, но перед любым префиксом:

div class="sm:hover:!tw-font-bold">

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

Разделитель

Опция separator позволяет вам настроить, какой символ должен использоваться для отделения модификаторов (размеры экрана, hover , focus и т. д.) от названий утилит ( text-center , items-end и т. д.).

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

tailwind.config.js

module.exports =  separator: '_', >

Основные плагины

Раздел corePlugins позволяет полностью отключить классы, которые Tailwind обычно генерирует по умолчанию, если они вам не нужны для Вашего проекта.

Чтобы отключить определенные основные плагины, предоставьте объект для corePlugins , который устанавливает для этих плагинов значение false :

tailwind.config.js

module.exports =  corePlugins:  float: false, objectFit: false, objectPosition: false, > >

Если вы хотите внести в список надежных отправителей, какие основные плагины должны быть включены, предоставьте массив, который включает список основных плагинов, которые вы хотите использовать:

tailwind.config.js

module.exports =  corePlugins: [ 'margin', 'padding', 'backgroundColor', // . ] >

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

tailwind.config.js

module.exports =  corePlugins: [] >

Вот список всех основных плагинов для справки:

Плагин Ядра Описание
accentColor Утилиты accent-color такие как accent-green-800
accessibility Утилиты sr-only и not-sr-only
alignContent Утилиты align-content такие как content-between
alignItems Утилиты align-items такие как items-center
alignSelf Утилиты align-self такие как self-end
animation Утилиты animation такие как animate-ping
appearance Утилиты appearance такие как appearance-none
aspectRatio Утилиты aspect-ratio такие как aspect-square
backdropBlur Утилиты backdrop-blur такие как backdrop-blur-md
backdropBrightness Утилиты backdrop-brightness такие как backdrop-brightness-100
backdropContrast Утилиты backdrop-contrast такие как backdrop-contrast-100
backdropFilter Утилиты backdrop-filter такие как backdrop-filter
backdropGrayscale Утилиты backdrop-grayscale такие как backdrop-grayscale-0
backdropHueRotate Утилиты backdrop-hue-rotate такие как backdrop-hue-rotate-30
backdropInvert Утилиты backdrop-invert такие как backdrop-invert-0
backdropOpacity Утилиты backdrop-opacity такие как backdrop-opacity-50
backdropSaturate Утилиты backdrop-saturate такие как backdrop-saturate-100
backdropSepia Утилиты backdrop-sepia такие как backdrop-sepia-0
backgroundAttachment Утилиты background-attachment такие как bg-local
backgroundBlendMode Утилиты background-blend-mode такие как bg-blend-color-burn
backgroundClip Утилиты background-clip такие как bg-clip-padding
backgroundColor Утилиты background-color такие как bg-green-800
backgroundImage Утилиты background-image такие как bg-gradient-to-br
backgroundOpacity Утилиты opacity background-color , такие как bg-opacity-25
backgroundOrigin Утилиты background-origin такие как bg-origin-padding
backgroundPosition Утилиты background-position такие как bg-left-top
backgroundRepeat Утилиты background-repeat такие как bg-repeat-x
backgroundSize Утилиты background-size такие как bg-cover
blur Утилиты blur такие как blur-md
borderCollapse Утилиты border-collapse такие как border-collapse
borderColor Утилиты border-color такие как border-e-green-800
borderOpacity Утилиты opacity border-color , такие как border-opacity-25
borderRadius Утилиты border-radius такие как rounded-ss-lg
borderSpacing Утилиты border-spacing такие как border-spacing-x-28
borderStyle Утилиты border-style такие как border-dotted
borderWidth Утилиты border-width такие как border-e-4
boxDecorationBreak Утилиты box-decoration-break такие как decoration-clone
boxShadow Утилиты box-shadow такие как shadow-lg
boxShadowColor Утилиты box-shadow-color такие как shadow-green-800
boxSizing Утилиты box-sizing такие как box-border
breakAfter Утилиты break-after такие как break-after-avoid-page
breakBefore Утилиты break-before такие как break-before-avoid-page
breakInside Утилиты break-inside такие как break-inside-avoid
brightness Утилиты brightness такие как brightness-100
captionSide Утилиты caption-side такие как caption-top
caretColor Утилиты caret-color такие как caret-green-800
clear Утилиты clear такие как clear-right
columns Утилиты columns такие как columns-auto
container Компонент container
content Утилиты content такие как content-none
contrast Утилиты contrast такие как contrast-100
cursor Утилиты cursor такие как cursor-grab
display Утилиты display такие как table-column-group
divideColor Утилиты между элементами border-color , например, divide-gray-500
divideOpacity Утилиты divide-opacity такие как divide-opacity-50
divideStyle Утилиты divide-style такие как divide-dotted
divideWidth Утилиты между элементами border-width , например, divide-x-2
dropShadow Утилиты drop-shadow такие как drop-shadow-lg
fill Утилиты fill такие как fill-green-700
filter Утилиты filter такие как filter
flex Утилиты flex такие как flex-auto
flexBasis Утилиты flex-basis такие как basis-px
flexDirection Утилиты flex-direction такие как flex-row-reverse
flexGrow Утилиты flex-grow такие как flex-grow
flexShrink Утилиты flex-shrink такие как flex-shrink
flexWrap Утилиты flex-wrap такие как flex-wrap-reverse
float Утилиты float такие как float-left
fontFamily Утилиты font-family такие как font-serif
fontSize Утилиты font-size такие как text-3xl
fontSmoothing Утилиты font-smoothing такие как antialiased
fontStyle Утилиты font-style такие как italic
fontVariantNumeric Утилиты font-variant-numeric такие как oldstyle-nums
fontWeight Утилиты font-weight такие как font-medium
gap Утилиты gap такие как gap-x-28
gradientColorStops Утилиты gradient-color-stops такие как via-emerald-700
grayscale Утилиты grayscale такие как grayscale-0
gridAutoColumns Утилиты grid-auto-columns такие как auto-cols-min
gridAutoFlow Утилиты grid-auto-flow такие как grid-flow-dense
gridAutoRows Утилиты grid-auto-rows такие как auto-rows-min
gridColumn Утилиты grid-column такие как col-span-6
gridColumnEnd Утилиты grid-column-end такие как col-end-7
gridColumnStart Утилиты grid-column-start такие как col-start-7
gridRow Утилиты grid-row такие как row-span-3
gridRowEnd Утилиты grid-row-end такие как row-end-4
gridRowStart Утилиты grid-row-start такие как row-start-4
gridTemplateColumns Утилиты grid-template-columns такие как grid-cols-7
gridTemplateRows Утилиты grid-template-rows такие как grid-rows-4
height Утилиты height такие как h-72
hueRotate Утилиты hue-rotate такие как hue-rotate-30
hyphens Утилиты hyphens такие как hyphens-manual
inset Утилиты inset такие как end-44
invert Утилиты invert такие как invert-0
isolation Утилиты isolation такие как isolate
justifyContent Утилиты justify-content такие как justify-center
justifyItems Утилиты justify-items такие как justify-items-end
justifySelf Утилиты justify-self такие как justify-self-end
letterSpacing Утилиты letter-spacing такие как tracking-normal
lineClamp Утилиты line-clamp такие как line-clamp-4
lineHeight Утилиты line-height такие как leading-9
listStyleImage Утилиты list-style-image такие как list-image-none
listStylePosition Утилиты list-style-position такие как list-inside
listStyleType Утилиты list-style-type такие как list-disc
margin Утилиты margin такие как me-28
maxHeight Утилиты max-height такие как max-h-40
maxWidth Утилиты max-width такие как max-w-6xl
minHeight Утилиты min-height такие как min-h-screen
minWidth Утилиты min-width такие как min-w-min
mixBlendMode Утилиты mix-blend-mode такие как mix-blend-hard-light
objectFit Утилиты object-fit такие как object-fill
objectPosition Утилиты object-position такие как object-left-top
opacity Утилиты opacity такие как opacity-50
order Утилиты order такие как order-8
outlineColor Утилиты outline-color такие как outline-green-800
outlineOffset Утилиты outline-offset такие как outline-offset-2
outlineStyle Утилиты outline-style такие как outline-dashed
outlineWidth Утилиты outline-width такие как outline-2
overflow Утилиты overflow такие как overflow-x-hidden
overscrollBehavior Утилиты overscroll-behavior такие как overscroll-y-contain
padding Утилиты padding такие как pe-28
placeContent Утилиты place-content такие как place-content-between
placeItems Утилиты place-items такие как place-items-center
placeSelf Утилиты place-self такие как place-self-end
placeholderColor Утилиты placeholder color , такие как placeholder-red-600
placeholderOpacity Утилиты placeholder color , такие как placeholder-opacity-25
pointerEvents Утилиты pointer-events такие как pointer-events-none
position Утилиты position такие как absolute
preflight Tailwind стили base/reset
resize Утилиты resize такие как resize-y
ringColor Утилиты ring-color такие как ring-green-800
ringOffsetColor Утилиты ring-offset-color такие как ring-offset-green-800
ringOffsetWidth Утилиты ring-offset-width такие как ring-offset-2
ringOpacity Утилиты ring-opacity такие как ring-opacity-50
ringWidth Утилиты ring-width такие как ring-4
rotate Утилиты rotate такие как rotate-6
saturate Утилиты saturate такие как saturate-100
scale Утилиты scale такие как scale-x-95
scrollBehavior Утилиты scroll-behavior такие как scroll-auto
scrollMargin Утилиты scroll-margin такие как scroll-me-28
scrollPadding Утилиты scroll-padding такие как scroll-pe-28
scrollSnapAlign Утилиты scroll-snap-align такие как snap-end
scrollSnapStop Утилиты scroll-snap-stop такие как snap-normal
scrollSnapType Утилиты scroll-snap-type такие как snap-y
sepia Утилиты sepia такие как sepia-0
skew Утилиты skew такие как skew-x-12
space Утилиты «space-between», например, space-x-4
stroke Утилиты stroke такие как stroke-green-700
strokeWidth Утилиты stroke-width такие как stroke-1
tableLayout Утилиты table-layout такие как table-auto
textAlign Утилиты text-align такие как text-right
textColor Утилиты text-color такие как text-green-800
textDecoration Утилиты text-decoration такие как overline
textDecorationColor Утилиты text-decoration-color такие как decoration-green-800
textDecorationStyle Утилиты text-decoration-style такие как decoration-dotted
textDecorationThickness Утилиты text-decoration-thickness такие как decoration-4
textIndent Утилиты text-indent такие как indent-28
textOpacity Утилиты text-opacity такие как text-opacity-50
textOverflow Утилиты text-overflow такие как overflow-ellipsis
textTransform Утилиты text-transform такие как lowercase
textUnderlineOffset Утилиты text-underline-offset такие как underline-offset-2
touchAction Утилиты touch-action такие как touch-pan-right
transform Утилиты transform (для включения функций преобразования)
transformOrigin Утилиты transform-origin такие как origin-bottom-right
transitionDelay Утилиты transition-delay такие как delay-200
transitionDuration Утилиты transition-duration такие как duration-200
transitionProperty Утилиты transition-property такие как transition-colors
transitionTimingFunction Утилиты transition-timing-function такие как ease-in
translate Утилиты translate такие как translate-x-full
userSelect Утилиты user-select такие как select-text
verticalAlign Утилиты vertical-align такие как align-bottom
visibility Утилиты visibility такие как invisible
whitespace Утилиты whitespace такие как whitespace-pre
width Утилиты width такие как w-1.5
willChange Утилиты will-change такие как will-change-scroll
wordBreak Утилиты word-break такие как break-words
zIndex Утилиты z-index такие как z-30

Использование нескольких конфигураций

Для проектов, которым необходимо создать несколько файлов CSS с использованием разных конфигураций Tailwind, используйте директиву @config , чтобы указать, какой файл конфигурации следует использовать для каждой точки входа CSS:

@config "./tailwind.site.config.js"; @tailwind base; @tailwind components; @tailwind utilities;
@config "./tailwind.admin.config.js"; @tailwind base; @tailwind components; @tailwind utilities;

Узнайте больше о директиве @config в документации Функции и директивы.

Ссылки в JavaScript

Часто бывает полезно ссылаться на значения Вашей конфигурации в Вашем собственном клиентском JavaScript — например, для доступа к некоторым из значений Вашей темы при динамическом применении встроенных стилей в компоненте React или Vue.

Чтобы упростить эту задачу, Tailwind предоставляет помощник resolveConfig , который вы можете использовать для генерации полностью объединенной версии Вашего объекта конфигурации:

import resolveConfig from 'tailwindcss/resolveConfig' import tailwindConfig from './tailwind.config.js' const fullConfig = resolveConfig(tailwindConfig) fullConfig.theme.width[4] // => '1rem' fullConfig.theme.screens.md // => '768px' fullConfig.theme.boxShadow['2xl'] // => '0 25px 50px -12px rgba(0, 0, 0, 0.25)'

Обратите внимание, что это транзитивно повлечет за собой множество наших зависимостей времени сборки, что приведет к увеличению размера пакета на стороне клиента. Чтобы избежать этого, мы рекомендуем использовать такой инструмент, как babel-plugin-preval для создания статической версии вашей конфигурации во время сборки.

Типы TypeScript

Мы поставляем собственные типы TypeScript для файла tailwind.config.js , который предоставляет вам всевозможную полезную поддержку IDE и значительно упрощает внесение изменений в вашу конфигурацию без обращения к документации.

Файлы конфигурации, сгенерированные с помощью интерфейса командной строки Tailwind, по умолчанию включают необходимую аннотацию типа, но для ручной настройки типов TypeScript просто добавьте аннотацию типа над объектом конфигурации:

tailwind.config.js

/** @type import('tailwindcss').Config> */ module.exports =  content: [ // . ], theme:  extend: >, >, plugins: [], >

Как расположить div по центру

Очень часто возникает необходимость расположить div по центру экрана или другого div’a но не всегда удается достичь желаемого результата, а иногда не совсем понятно почему тот или иной способ не работает.

В данной статье рассмотрим некоторые способы задания положения div’a по центу с помощью таких приемов, как position, flexbox и grid.

Расположение по центру с помощью свойства position

Рассмотрим два способа расположить div по центру с применением свойства position. Для начала задаем родительскому диву position: relative. Для дочернего элемента указываем следующие свойства: position: absolute и другие:

.parentDiv  position: relative; > // 1 способ .childDiv  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); > // 2 способ .childDiv  position: absolute; top: 0; left: 0; bottom: 0; right: 0; margin: auto; >

Оба представленных способа имеют одинаковый эффект, выбор остается лишь за вами.

Расположение по центру с помощью flexbox

Самый простой и распростаненный способ отцентрировать див с помощью flexbox — задать родительскому элементу следующие свойства:

.parentDiv  display: flex; justify-content: center; align-items: center; >

Задав эти свойста родительскому элементу, все дочерние элементы находящиеся внутри него примут центральное положение.

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

.parentDiv  display: flex; justify-content: center; > .childDiv  align-self: center; >

Этот способ похож на тот, который был описан выше с небольшим отличием. Свойство align-self: center следует указать тому элементу, который необходимо отцентровать. Это установит флекс-элемент по центру контейнера.

Еще один способ расположить отдельный div в центре родительского, указать дочернему элементу свойтво margin: auto.

.parentDiv  display: flex; > .childDiv  margin: auto; >

Центрирование с помощью grid

По аналогии с первым способом, рассмотренным во втором пункте, можно заменить свойство display: flex на display: grid.

// display: flex .parentDiv  display: flex; justify-content: center; align-items: center; > // display: grid .parentDiv  display: grid; justify-content: center; align-items: center; >

Свойство grid так же, как и flex позволяет отцентровать элемент внутри родительского div’a. Для этого родительскому элементу необходимо задать свойство display: grid, а дочернему указать расположение по вертикали и горизонтали center.

.parentDiv  display: grid; > .childDiv  align-self: center; justify-content: center; >

Еще одним способом выравнивания по центру, является place-items: center. Place-items: center выравниет все элементы по оси строки и по оси столбца. Однако, если родительский элемент не является grid-контейнером, то свойство place-items не окажет на него никакого влияния.

.parentDiv  display: grid; place-items: center; >

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

Теперь вы знаете каким способом можно отцентровать div �� И помните: keep calm and write code

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *