CSS aspect-ratio — співвідношення сторін елемента


CSS властивість aspect-ratio задає співвідношення сторін елемента: 16 / 9, 1 / 1, 4 / 3. Висота порахується сама з ширини.

автор: NagarD

Загальний опис

Це та властивість, яка поховала знаменитий «padding-bottom hack». Раніше, щоб зробити адаптивний контейнер для відео, писали padding-top: 56.25% і позиціонували вміст абсолютно — прийом працював, але виглядав як магія і потребував пояснень у коментарі.

Тепер достатньо aspect-ratio: 16 / 9. Елемент сам тримає пропорцію на будь-якій ширині.

Особливо корисно для карток у сітці: квадратні прев'ю (aspect-ratio: 1) не «стрибають» при завантаженні зображень.

автор: NagarD

Порада

Разом із object-fit: cover це готовий рецепт прев'ю: пропорція фіксована, а зображення заповнює її без спотворень.

автор: NagarD
Нотатка

Якщо в елемента заданий і width, і height, aspect-ratio ігнорується — явні розміри мають пріоритет.

автор: NagarD

Синтаксис

aspect-ratio: auto | <ratio>;

Властивість aspect-ratio може отримувати 2 значень:

auto

Природне співвідношення сторін елемента (для зображень — з самого файлу).

автор: NagarD

ratio

Співвідношення виду width / height, наприклад 16 / 9 або просто 1.5.

автор: NagarD

Значення без задання: auto
Наслідує: Ні
Анімується: Так

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
aspect-ratio 88+ 89+ 15+ 74+ 88+ -
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
aspect-ratio 88+ yes yes 15+

Приклади

+ запропонувати свій приклад у пісочниці

Адаптивний контейнер відео 16:9 — без жодного хаку.

HTML

<div class="video">
    <iframe src="about:blank" title="Відео"></iframe>
</div>

<img class="thumb" src="/img/logo.svg" alt="Прев'ю">

CSS

.video {
    aspect-ratio: 16 / 9;
    background: #eee;
}

.video iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

/* квадратне прев'ю без спотворень */
.thumb {
    aspect-ratio: 1;
    object-fit: cover;
    width: 150px;
}
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід