Суть
Да. CSS можно ограничить областью документа несколькими способами: селекторами, scoping и изоляцией.
Способы
- Селекторы:
.widget .title { … } — стили только внутри контейнера.
@scope (современные браузеры): явное ограничение каскада.
- Shadow DOM: стили web component не «вытекают» наружу (и наоборот, по умолчанию).
- iframe: полностью отдельный документ со своими стилями.
- CSS Modules / scoped атрибуты во фреймворках — на этапе сборки.
@scope (.card) {
h2 { font-size: 1.25rem; }
}
<div class="card">
<h2>Только здесь</h2>
</div>
Ограничения
Глобальные body/html и наследуемые свойства всё равно влияют. Полная изоляция — Shadow DOM или iframe.
Итог
«Часть документа» = контейнер + селекторы/@scope/Shadow DOM; полная изоляция — отдельный document context.