2

我有一个浏览器扩展,它向页面添加了一个 div 元素(和其他元素)。有没有办法确保页面样式不会影响我添加的元素中的样式?

我考虑过将其设为 iframe,但不希望进行额外调用。尽管我添加的信息只是基本的文本和链接,但确保覆盖每一种可能的样式似乎也有点多。

4

1 回答 1

0

我注意到你说你不想使用每一种风格,但我想我应该在这里提到它,以防它帮助别人。基本上,这是一个可以删除大多数继承/预定义属性的类。您可以将该类添加到您想要排除的任何元素。这是一个例子:

.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 或更低版本 - 不用骰子。

于 2013-07-03T18:56:09.553 回答