dr.Brain

doctor Brain

мир глазами веб-разработчика

CSS: логические свойства

логические понятия и величины для управления свойствами элементов

dr.Brain

время чтения 1 мин.

Photo by Emma Miller on Unsplash

Итак, название свойства margin-left кажется логически верным, но Мануель Рего Касасновас (Manuel Rego Casasnovas) имеет по этому поводу другое (как оказалось, объективное) мнение. Так, например, иногда появляется необходимость разместить контент не слева направо, а справа налево, при этом отступы, находящиеся физически справа, будут иметь смысловое значение левых отступов. Как результат, для некоторых элементов придется поменять местами значения margin-right и margin-left.

Со временем мы понимаем, что направление контента, используемый язык и даже особенности модели flexbox могут абсолютно изменить смысловые значения названий CSS-свойств и сделать их понимание неоправданно трудным. Именно поэтому появились логические свойства, например: margin-inline-start.

Полный список таких свойств выглядит так:

  1. margin-{block,inline}-{start,end}
  2. padding-{block,inline}-{start,end}
  3. border-{block,inline}-{start,end}-{width,style,color}

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

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

Ниже находится таблица сопоставления классических и логических CSS-свойств:

Margin

свойство логическое свойство
margin-top margin-block-start
margin-left margin-inline-start
margin-right margin-inline-end
margin-bottom margin-block-end

Padding

свойство логическое свойство
padding-top padding-block-start
padding-left padding-inline-start
padding-right padding-inline-end
padding-bottom padding-block-end

Border

свойство логическое свойство
border-top border-block-start
border-left border-inline-start
border-right border-inline-end
border-bottom border-block-end

Абсолютное позиционирование

свойство логическое свойство
top inset-block-start
left inset-inline-start
right inset-inline-end
bottom inset-block-end

Спасибо за внимание.

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.