У меня есть кусок CSS как строка, и я хочу вставить его в DOM, чтобы он применим только к элементам в конкретном контейнере. Некоторые инструменты, такие как Polymer, например, переписывают селектор CSS, поэтому они применяются только в ограниченной области. Как я могу сделать что-то подобное, чтобы при вставке этого CSS в DOM он не изменил все элементы на странице?Как я могу программно изменить CSS, чтобы ограничить его область?
Чтобы сделать его более конкретным, представьте себе следующий HTML и CSS из внешнего источника:
<style>p { font-size: 20px; }</style>
<p>Boo.</p>
Я хочу, чтобы вставить эти элементы в #container
элемент, но я не хочу, чтобы изменить Font- размер для всех <p>
элементов. Я хотел бы переписать все селекторы внутри этого элемента <style>
, поэтому они применимы только в пределах #container
(p
->#container p
и т. Д.). Как?
интересно так с этим вы можете изменить любое поведение селектора CSS может быть более точным, как именно? вы добиваетесь такого поведения – Geeky
reworkcss/css - это синтаксический анализатор CSS, который использует CSS как строку и возвращает объект, описывающий таблицу стилей. Модифицируя этот объект и передавая его обратно в 'CSS.stringify', я могу надежно изменить все селекторы. –