我有一个浏览器扩展,它向页面添加了一个 div 元素(和其他元素)。有没有办法确保页面样式不会影响我添加的元素中的样式?
我考虑过将其设为 iframe,但不希望进行额外调用。尽管我添加的信息只是基本的文本和链接,但确保覆盖每一种可能的样式似乎也有点多。
我有一个浏览器扩展,它向页面添加了一个 div 元素(和其他元素)。有没有办法确保页面样式不会影响我添加的元素中的样式?
我考虑过将其设为 iframe,但不希望进行额外调用。尽管我添加的信息只是基本的文本和链接,但确保覆盖每一种可能的样式似乎也有点多。
我注意到你说你不想使用每一种风格,但我想我应该在这里提到它,以防它帮助别人。基本上,这是一个可以删除大多数继承/预定义属性的类。您可以将该类添加到您想要排除的任何元素。这是一个例子:
.reset {
background:none;
border:none;
bottom:auto;
clear:none;
cursor:default;
float:none;
font-size:medium;
font-style:normal;
font-weight:normal;
height:auto;
left:auto;
letter-spacing:normal;
line-height:normal;
max-height:none;
max-width:none;
min-height:0;
min-width:0;
overflow:visible;
position:static;
right:auto;
text-align:left;
text-decoration:none;
text-indent:0;
text-transform:none;
top:auto;
visibility:visible;
white-space:normal;
width:auto;
z-index:auto;
}
现在只需添加“重置”,它应该将其恢复正常。然后,您可以在该行下方定义样式,它们将覆盖重置类中的样式。
您还可以将通配符选择器添加到重置类,以便它也以元素的子元素为目标。
.reset,
.reset * { /*...etc */ }
注意:IE8+ 支持通配符,因此如果您使用的是 IE7 或更低版本 - 不用骰子。