2012-02-08 24 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