Вы можете указать все элементы вне очень сложных имен класса css и убедиться, что они не сталкиваются с теми, которые пользователь выберет (например, «KAFHxyz _...»). Таким образом, все нормальные имена классов и стили по умолчанию будут применяться только к «виджету».
Это будет некоторое усилие, так как вы должны установить все стандартные стили CSS, используя !important
(так что пользователь может сказать «тело {шрифт ...}», и он будет применяться только к своей области.
Кроме того, вы можете попробовать написать javascript, который извлекает все стили всех элементов, а затем добавляет «виджет» (и это JS/CSS), а затем восстанавливает все стили до того, чем они были раньше. Должно быть возможно, но производительность будет, вероятно, suck.
[EDIT] Это означает, что вы знаете, что можете создать iframe
с JavaScript и манипулировать содержимым (DOM внутри) в контент вашего сердца, да? В этом случае IF rame будет просто Div-подобным элементом, который добавляет «пространство имен» для CSS и JS-файлов.
Я не думаю, что есть способ, но я хотел бы знать один :) –
Вы не можете остановить общий CSS, применяемый к разделу, но чтобы остановить CSS раздела, применяемого к остальной части страницы, см. Ответ Devon_C_Miller , – Quentin