Spec-Zone.ru › CSS

contain-intrinsic-width

Baseline 2023

Newly available

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

  • Узнать больше
  • Показать полную совместимость
  • Отправить отзыв

Свойство contain-intrinsic-width CSS задаёт ширину элемента, которую браузер будет использовать для макета, когда элемент подвержен содержанию размера.

Синтаксис

/* Keyword values */
contain-intrinsic-width: none;

/* <length> values */
contain-intrinsic-width: 1000px;
contain-intrinsic-width: 10rem;

/* auto <length> */
contain-intrinsic-width: auto 300px;

/* Global values */
contain-intrinsic-width: inherit;
contain-intrinsic-width: initial;
contain-intrinsic-width: revert;
contain-intrinsic-width: revert-layer;
contain-intrinsic-width: unset;

Значения

Для элемента могут быть указаны следующие значения.

none

У элемента нет внутренней ширины.

<length>

У элемента задана ширина (<length>).

auto <length>

Запомненное значение ширины элемента "нормального рендеринга", если оно существует, и элемент пропускает своё содержимое (например, когда он скрыт); в противном случае указанное <length>.

Описание

Это свойство обычно применяется вместе с элементами, которые могут вызывать ограничение размера, такими как contain: size и content-visibility, и также может быть задано с помощью contain-intrinsic-size краткого свойства.

Ограничение размера позволяет пользовательскому агенту отображать элемент, как будто у него фиксированный размер, предотвращая ненужные перестроения, избегая повторного рендеринга дочерних элементов для определения фактического размера (тем самым улучшая пользовательский опыт). По умолчанию ограничение размера обрабатывает элементы так, как будто у них нет содержимого, и может схлопывать макет так же, как если бы содержимое не имело ширины или высоты. Свойство contain-intrinsic-width позволяет авторам указать подходящее значение, которое будет использоваться в качестве ширины для макета.

Значение auto <length> позволяет сохранить ширину элемента, если элемент когда-либо будет "нормально рендериться" (с его дочерними элементами), а затем использовать его вместо заданной ширины, когда элемент пропускает своё содержимое. Это позволяет внеэкраным элементам с content-visibility: auto извлекать выгоду из ограничения размера, не заставляя разработчиков быть столь точными в своих оценках размера элемента. Запомненное значение не используется, если дочерние элементы рендерятся (если ограничение размера включено, то будет использовано значение <length>).

Формальное определение

Начальное значение none
Применяется к элементам, к которым может применяться ограничение размера
Наследуется нет
Вычисленное значение как указано, со значениями <length> вычислены
Тип анимации по типу вычисленного значения

Формальный синтаксис

contain-intrinsic-width = 
auto? [ none | <length> ]

Примеры

Помимо примера ниже, на странице contain-intrinsic-size представлен интерактивный пример, демонстрирующий эффект изменения внутренней ширины и высоты.

Установка внутренней ширины

В HTML ниже определён элемент "contained_element", который будет подвержен ограничению размера и который содержит дочерний элемент.

<div id="contained_element">
  <div class="child_element"></div>
</div>

В CSS ниже устанавливается content-visibility для contained_element в auto, поэтому, если элемент скрыт, он будет ограничен размером. Ширина и высота, которые используются при ограничении размера, задаются одновременно с помощью contain-intrinsic-width и contain-intrinsic-height соответственно.

#contained_element {
  border: 2px solid green;
  width: 151px;
  content-visibility: auto;
  contain-intrinsic-width: 152px;
  contain-intrinsic-height: 52px;
}
.child_element {
  border: 1px solid red;
  background: blue;
  height: 50px;
  width: 150px;
}

Спецификации

Спецификация
CSS Box Sizing Module Level 4
# propdef-contain-intrinsic-width

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet WebView Android
contain-intrinsic-width 95 95 107 81 17 95 107 67 17 17.0 95
none 98 98 107 84 17 98 107 68 17 18.0 98

См. также

  • content-visibility: новое свойство CSS, повышающее производительность рендеринга (web.dev)
  • contain-intrinsic-size
  • contain-intrinsic-height
  • contain-intrinsic-block-size
  • contain-intrinsic-inline-size

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/contain-intrinsic-width

Spec-Zone.ru

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