CSS contain — ізоляція елемента для швидшого рендеру
CSS властивість contain ізолює елемент від решти документа: обіцяє браузеру, що зміни всередині не вплинуть на зовнішній макет.
Загальний опис
Це обіцянка, яку браузер приймає на віру й використовує для оптимізації. Якщо він знає, що вміст картки ніяк не зачепить сусідів, то при зміні цієї картки перерахує тільки її.
layout ізолює макет, paint забороняє малювати за межами елемента, size каже, що розмір не залежить від вмісту. Значення strict вмикає все одразу.
- Нотатка
-
автор: NagarDcontain: sizeвимагає, щоб розмір був заданий явно — інакше елемент схлопнеться в нуль. Це найнебезпечніше зі значень.
Синтаксис
contain: none | strict | content | [ size || layout || style || paint ];
Властивість contain може отримувати 6 значень:
-
none -
Без ізоляції.
автор: NagarD -
layout -
Внутрішній макет не впливає на зовнішній.
автор: NagarD -
paint -
Нащадки не малюються за межами елемента.
автор: NagarD -
size -
Розмір не залежить від вмісту.
автор: NagarD -
strict -
Усі види ізоляції разом (size layout paint style).
автор: NagarD -
content -
layout + paint + style.
автор: NagarD
| Значення без задання: | none |
|---|---|
| Наслідує: | Ні |
| Анімується: | Ні |
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| contain | 52+ | 69+ | 15.4+ | 40+ | 79+ | - |
| Переглядач | ||||
|---|---|---|---|---|
| contain | 52+ | yes | yes | 15.4+ |
Приклади
+ запропонувати свій приклад у пісочниці
Ізольована картка — браузер не перераховує сусідів.
HTML
<article class="widget">Незалежний віджет</article>
CSS
.widget {
/* макет і малювання не виходять за межі */
contain: layout paint;
}
Коментарі
Коментарів ще немає — будьте першим!