2012-02-08 21 views
0

我正在创建A/B网站。主要是为了好玩。它有两个部分。它从互联网上获取一个页面并将其显示在一个容器(div#页面)中。所以我抓取example.com,并改变基地,并显示在div中。到现在为止还挺好。需要禁用页面某一部分的样式

uppper部分是我网站的内容(div#header)。我显示菜单,表单(指定url)和其他一些东西。

问题是:来自example.com的css也适用于我的网站的元素。我如何阻止这种情况发生?我希望example.com的CSS只适用于#page,而不是#header

有没有这样做的方法?我知道我可以使用重置助手,但似乎不是一个最佳解决方案:必须重新定义所有内容。加上然后我的网站的CSS将适用于example.com

任何想法,或者这是可撤销的?

+0

您使用的是iframe吗? – ggreiner 2012-02-08 02:07:32

+0

不,我需要能够通过javascript与其他页面进行交互。这可以通过iframe来实现吗? – 2012-02-08 02:10:37

+0

是的,我已经添加了一个答案,指出如何。 – ggreiner 2012-02-08 02:15:45

回答

1

你可以尝试在你的CSS在所有选择的前面放置一个更具体的选择隔离所有的样式。

所以,如果有一堆样式选择的:

.main{ ... } 
#myContainer { ... } 
#menu .menu-item { ... } 
p { ... } 

(或什么以往任何时候都可能是)

然后把你的最上面的元素ID在你的HTML(如BODY元素),类似'myPage',然后将所有的css选择器更改为:

#myPage .main{ ... } 
#myPage #myContainer { ... } 
#myPage #menu .menu-item { ... } 
#myPage p { ... } 
+0

我想避免的事情。我希望样式只能在声明之后传播。以前的元素不应该受到影响。但不能这样做,我想 – 2012-02-08 04:43:07

+0

你能否进一步解释这个说法(也许有一个例子):“只传播到它们被声明的点后” – JTech 2012-02-08 23:06:57

+0

我的意思是如果我在第89行声明样式,并且有匹配的元素在第80行,它们不应该适用于第80行的元素 – 2012-02-13 09:26:37

2

example.com分离为iframe。要使用该网页上的JavaScript交互,然后按照这个answer

+0

我会检查出来的。谢啦! – 2012-02-08 02:15:39