Кратко
СкопированоСвойство задаёт соотношение сторон для элемента.
Пример
СкопированоКод ниже стилизует блок так, что его высота будет равна его ширине:
.container { width: 200px; aspect-ratio: 1 / 1;}
.container { width: 200px; aspect-ratio: 1 / 1; }
Подобное поведение можно получить и в случае, когда задана только высота:
.container { height: 200px; aspect-ratio: 1 / 1;}
.container { height: 200px; aspect-ratio: 1 / 1; }
Как пишется
Скопированоauto
— соотношение сторон считается автоматически.<width>
— соотношение сторон всегда считается относительно ширины и высоты блока./ <height> auto <width>
— совмещённая запись./ <height>
При совмещённой записи соотношение <width>
приоритетнее, но когда у элемента есть собственное соотношение сторон, применится оно:
Если использовать значение auto 1
для <img>
, то применится соотношение сторон фотографии. Это происходит, потому что она имеет собственное соотношение сторон. При значении 1
мы принудительно применим соотношение сторон 1 к 1.
Чтобы избежать искажений картинки, можно использовать свойство object
.
Как понять
СкопированоСвойство вычисляет незаданную сторону, исходя из размера уже известной. Возьмём пример с aspect
:
.container { width: 200px; aspect-ratio: 2 / 1;}
.container { width: 200px; aspect-ratio: 2 / 1; }
Соотношение сторон в этом случае — 2
. Такому соотношению должны равняться и стороны блока: <width>
.
Нам известна ширина — 200px
.
2⁄1 = 200⁄height
Отсюда получаем высоту блока — 100px
.
Подсказки
Скопировано💡 Свойство нельзя применить к строчным элементам.
💡 Хотя большинство значений поддерживается основными браузерами, с некоторыми могут быть трудности. Поэтому на всякий случай проверяйте поддержку на Can I use.