防止使用CSS操纵元素

时间:2012-12-10 20:07:14

标签: javascript jquery html css

我目前正在构建一个小型广告网络,主要用于我们自己的网站。

通过在网站上添加脚本来加载广告,例如......

<script src="http://someurl.com/somejs.js"></script>

我放置脚本行的任何地方,都会被内置样式内的广告内容替换。 广告必须是HTML,这就是让我烦恼的事情......

例如,假设广告内容类似于

<div style="height: 150px; width: 90px; overflow: hidden; display: inline-block;"><p>Buy cheap buttons</p><p><img src="deliciousButtons.png" /></p></div>

然后让我们假装内容已加载到网页中,其中有人在其样式表中包含以下内容:

img { border: 1px solid red; }

现在,广告中的图片会出现红色边框 - 无聊。

我唯一的解决方案是使用iframe ......但是,我从来都不喜欢iframe。

是否有一个html元素,您可以在其中放置HTML并且内部放置的所有内容都不受任何样式表首选项的影响 - 仅内联样式?

......如果没有。有关如何做的任何建议?没有iframes:)

2 个答案:

答案 0 :(得分:2)

你可以覆盖继承的样式,但为了使它正常工作,你需要永远使用每个可能的CSS选项,并且可能将这些覆盖标记为!重要的,真的,iframes是实现这一目标的最佳方式,另一种可能性是使用静态图像或闪光灯,但我想这也是可能的选择。

答案 1 :(得分:1)

您可以执行以下操作。
添加一个您不想要样式的类。

<img src="deliciousButtons.png" class="no-border"/>

然后在你的CSS上。

img:not(.no-border) {
    border: 1px solid red;
}

demo