2010-11-22 2 views
3

У меня есть виджет, который вводит всплывающее окно на разные веб-сайты, как абсолютный позиционированный div.Как я могу сбросить все css всех элементов в div без внешнего файла css?

Я хочу, чтобы всплывающее окно выглядело одинаково на всех. однако абзацы и другие html-элементы внутри div выполняются хостинговым CSS.

Есть ли способ сбросить все свойства элементов в div эффективным образом без файла css, который должен будет учитывать все варианты и типы элементов?

Примечание: Мне нужно чистое решение javascript/css/html, возможно, что jQuery доступен.

ответ

2

Лучшее, что вы можете сделать, это использовать iframe для содержимого виджета. Невозможно сбросить все наследуемые стили CSS, используя только CSS.

1

Краткая анкета: Насколько мне известно, нет.

Длинный ответ: Так как вы не хотите, стиль текущего документа обратиться к элементам внутри вашей абсолютно позиционирован <div>, может быть, лучше было бы использовать <iframe> элемент вместо <div>.

Таким образом, элементы всплывающего окна будут изолированы в собственном документе и будут независимы от стиля текущего документа. Документ в вашем может даже иметь другой doctype, если вам это требуется.

+0

+1, аналогичный вопрос был задан некоторое время назад - http://stackoverflow.com/questions/2866992/using-jquery-to-disable-css-inheritance, хотя и требует решения jQuery (таким образом, чтобы этот вопрос был узко избежать моего закрытого голосования). –

1

Ну, вы можете произвольно установить некоторые атрибуты стиля с помощью JS, но это будет длинный список, он не будет довольно или эффективным, а CSS предназначен для достижения полной противоположности. Вы также можете добавить встроенный блок стиля с определенными идентификаторами CSS-селекторов, и я думаю, !important теги, но опять-таки это некрасиво - с одной стороны, гарантируя, что ID трудно или невозможно.

В принципе, если это не ваша страница, ваш контроль над ней (правильно) иллюзорен.

Смежные вопросы