2010-08-06 39 views
0

我是第一次海報。一個問題。如何做一個只能在一個DIV內工作的css聲明,但不覆蓋全局css?我想要jQuery將頁面加載到DIV中,但是,頁面的CSS更改了我自己網站的CSS。我不想那樣。另外,我不能只是拿出CSS,因爲我希望它們看起來像來源一樣。真正的嵌套CSS? (不是選擇器)

基本上我們將加載一個外部HTML,其CSS樣式僅在本地應用,而不會改變別處的樣式。外部HTML不使用內聯CSS,因爲我們無法控制它。它們應用於類值或甚至所有元素類型。我們不希望他們的CSS聲明修改我們自己現有的CSS在DIV容器之外。

這甚至可能嗎? 謝謝你?

+0

你好傢伙,要說清楚。我無法控制內容。我使用jquery $(「#targetDIV」)。load(「my.html」); 哪個my.html包含樣式h1 {color:RED;} 我確定希望#targetDIV中的h1文本是RED,但不在我的#targetDIV之外。 這就是爲什麼它不是選擇器相關。 謝謝 – BoBoDev 2010-08-06 17:31:08

回答

2

如果我理解你的問題正確,你可以在div <div id="mystyle"> content </div>中放置一個id。在你的CSS中,你會寫#mystyle p { color:red; }。這對「mystyle」div之外的全局段落沒有影響。

+0

爲什麼使用ID的? Id是用來作爲indetifier。類是爲了定義樣式。一個元素可以有很多類,但只有一個id。如果你在一個頁面上有許多按鈕,並且你想爲它們定義相同的樣式,那麼你不能使用id。 – newbie 2010-08-06 16:42:33

+0

據我瞭解,OP正在將一個完整的HTML頁面加載到'div'中,所以他無法控制該頁面上的樣式表。 – casablanca 2010-08-06 16:46:09

+0

@newbie不是真的。您可以在html文檔中的多個元素上使用相同的類名,但只能爲html文檔中的一個元素指定一個特定的id。這兩個類和id的完美作品,是級聯樣式表的有效標識符。 @casablanca這個問題有點不清楚,所以我希望在任何一分鐘我都會收到@ user413258的回覆,所以我們可以對css進行討論。 – 2010-08-06 16:59:10

0

我想你是問如何將外部樣式表應用到一個div。沒有辦法只使用CSS來做到這一點。你可能可能能夠使用JavaScript來模擬這個,但它需要很多工作。下面是你如何去做這件事的大綱:

  1. 從加載的HTML獲取樣式表文件名,然後通過AJAX獲取CSS文件的內容。
  2. 以某種方式解析CSS並將您的div ID作爲前綴,以便它僅適用於您的div
  3. 將修改後的樣式表作爲內嵌文本注入到加載的HTML中。

步驟1和步驟3相對簡單,步驟2需要使用JavaScript編寫的CSS解析器。 (似乎有一個available here,雖然沒有文件。)

+0

大聲笑,這可能有用,但相當困難。謝謝你的想法。 – BoBoDev 2010-08-06 17:33:14