CSS: пространство имен кусок HTML

Я создаю расширение браузера, которое вставит кусок HTML на некоторые страницы. Я бы хотел, чтобы CSS страницы не применялся к этому разделу. Как лучше всего это сделать? Есть ли хороший сброс, который я могу поместить в корневой элемент моего HTML и установить его!важно, чтобы он применялся после других?

2 ответов


единственный способ 100% вывести его из каскада-поместить его в iframe.

вы можете использовать таблицу стилей сброса css, но просто префикс все с вашим корневым элементом id / class. Это будет долгий путь к борьбе с эффектами, но в этой области вам, вероятно, придется сделать еще несколько окончательных настроек.

вероятно, лучшим подходом было бы просто установить каждое разумное свойство ваших подправил. Так что я имею в виду, установить фон, передний план, шрифт, размер, и т. д. и т. п. Полностью определите правила так, чтобы они говорили именно то, что вы хотите, и не оставляли места для каскада, чтобы заполнить значения по умолчанию, которые вас не интересуют.


вы можете использовать reset CSS и применить его только к подмножеству вашей страницы. Например,этот.

My page
<div id="no-css">
 blah blah this has no css
</div>

конечно, вы должны охватить все в сбросе, например:

ol, ul {
    list-style: none;
}

должно быть:

#no-css ol, #no-css ul {
    list-style: none;
}

чтобы упростить это, я рекомендую использовать CSS "framework", как меньше которые упрощают такого рода вещи:

#no-css{
    /* Big copy and paste of all the reset css file */
}

используя этот меньший код, вы можете либо использовать меньше, либо просто создать новый сброс.css файл и использовать его нормально.

конечно, вы также можете найти сброс элемента но это решение позволяет выбрать любой сброс вам нравится больше всего.

другое решение-встроить вашу страницу в iframe.