Добрый день столкнулся с проблемой, нужно применить стили (сложные с псевдоклассами) к одной части документа(блоку, в котором ещё много блоков), а чтоб к остальной странице они не применялись, так сделать, как нибудь возможно?
Можно попробовать ввести пространство имён, к примеру, с определённым классом или префиксом к классу и стилизовать элементы только с этим классом или его дочерние элементы.
То есть, если у вас есть правила, которые действуют на все ссылки a
, то, чтобы задействовать стили только для определённых ссылок, нужно обернуть их в контейнер c классом, к примеру my-block
, и стилизовать по правилу .my-block a {}
.
Про это то я знаю, на ваших курсах я этому научился)
тут проблема, когда CSS файл очень большой и что бы вот так все селекторы не изменять сделать к примеру внутри
<div class="block1">
<link href="style2.css" rel="stylesheet">
...
...
</div>
Простого способа реализовать в HTML и CSS такую инкапсуляцию нет =) Стили будут применяться ко всему DOM-дереву.
Но существует, пока ещё находящая в черновом варианте, спецификация веб-компонентов, которая включает в себя понятие «теневого DOM». С его помощью и небольшой магии можно добиться подобного приведённому вами примеру. Однако поддержка технологии пока совсем не широка.
Так что проще выбрать из подключаемых стилей только то, что действительно нужно, и реализовать пространство имён.
В моих работах такое было бы как ни как кстати, жаль, что с такой малой поддержкой смысла в ней особо нет. Но спасибо, что сообщили о такой технологии)