2009-06-17 61 views
4

我有一個外部CSS文件(我無法改變它),我需要在我的HTML文件中使用,但我希望CSS隻影響一段我的HTML。 (例如一切<div id="externally_styled"></div>如何獲取CSS文件隻影響HTML的一部分

這怎麼可能,同樣,在不改變CSS文件(和CSS文件中還包含了影響身體標記等通用風格)

+4

如果您可以編寫HTML而不是CSS,爲什麼不創建另一個CSS來取代原來的CSS?這不是更簡單,更清潔嗎? – 2009-06-17 09:56:37

回答

4

你可能必須使用iframe,頁面只包含您想要的樣式的HTML和對樣式表的引用。這意味着一般樣式不會應用於包含頁面,但聽起來就是您想要的。

+0

不要忘記級聯樣式表是級聯的,本地樣式定義會覆蓋外部樣式表。 - 就這麼簡單吧。 – 2009-06-17 09:56:06

+0

謝謝,我用你的iFrame解決方案來解決問題。(以爲我曾考慮過它,但我認爲可能會有一些HTML標記/屬性允許在HTML的某個部分包含一個外部css文件。) – EdanB 2009-06-17 10:39:47

0

想到的一種方法是讓HTML中的「將被樣式化」的部分存在一個完全獨立的文件中,然後通過使用外部文件中的CSS的iframe將其拉入。

0

我唯一能想到的就是將內容從您的DIV重新渲染到Iframe。

1

附加到標籤的任何類或樣式聲明都會覆蓋CSS文件中的聲明。

只是你自己的風格聲明添加標籤:

<div style="<your own declarations>"> 
... 
</div> 
+1

可怕的,但由於問題本身已經是可怕的,它會一個可行的解決方案 – 2009-06-17 09:54:27

+0

我同意這是一個可怕的解決方案。每個在標籤style屬性中省略的聲明都將默認爲css文件中的聲明。 – TFM 2009-06-17 09:59:55

0

要麼使用您爲特定部分創建或使用正確的父子關係的CSS類的類名,只有當它下降,這將使得根據父母的子女關係。

1

您可以覆蓋不希望應用於HTML文檔的一般樣式。如果CSS不是那麼廣泛的話,這可能是一個好主意。

覆蓋樣式的方法是使用關鍵字important!

e.g:

原來的樣式表:

body { 
    color: #000000; 
} 

你的樣式表:

body { 
    color: #CCCCCC !important; 
} 

你可以找到更多信息here

1

我猜想任何客戶端解決方案都會變得混亂。

您可以使用服務器端解決方案吸入外部CSS文件並在每個規則的開始附加一個類選擇器?我相信這與正則表達式很容易。