2012-07-31 81 views
4

當使用IE8通過開發人員工具的瀏覽器模式功能查看IE7時,我遇到了奇怪的CSS問題。當我對外部樣式表進行更改,然後在HTML中引用該類時,就像IE7根本無法識別它。但是,如果我將相同的樣式內聯,IE7會遵守它。有沒有人聽說過這個?這裏有一個簡單的例子來幫助說明我在說什麼:爲什麼IE7不能識別對外部樣式表的類調用,但會識別內聯樣式?

外部樣式表:

.bold { 
    font-weight:bold; 
} 

呼叫在HTML:

<p class="bold">My paragraph here</p> 

沒有變化,將有效地IE7,但所有其他瀏覽器很好。

但是,如果我這樣做:

<p style="font-weight:bold;">My paragraph here</p> 

IE7似乎高興。有什麼不同?我真的必須這樣做CSS更改,還是有另一種解決方法?

我很困惑這個問題可能是什麼。我不知道開發者工具的瀏覽器模式是否有一個怪癖,並且不像IE7的真實版本那樣工作,或者如果這是完全不同的東西。我正在使用IE8(我無法在此政府計算機上升級到IE9),但我聽說IE9的IE7瀏覽器模式也發生了改變。

我們使用ColdFusion生成HTML,使用HTML5的doctype(),並且我已經爲2個外部樣式表引用添加了一個timestamp參數,所以瀏覽器每次都被迫抓取一個新副本。

任何與這個謎的幫助將非常感謝 - 謝謝!

====== 對於@Stano或任何對重新創建準確問題感興趣的人,這裏有一個精簡版:https://docs.google.com/open?id=0B02DZPpIlMwGSk1VZHRDUHNCTkU(可以點擊文件>下載獲取zip)。在IE7中注意,「攝影師」沒有問題,因爲它具有內聯樣式,但其他人沒有拾取任何東西。

+1

任何機會你有超過31個樣式錶鏈接在頭上?IE瀏覽器將忽略該數字後面的任何表單,並且您會試圖弄清楚爲什麼您的樣式被忽略。 – JGrubb 2012-07-31 16:33:56

+4

在IETester IE7上試試。 IE7模式下的IE8不等於IE7。 – Rustam 2012-07-31 16:36:14

+1

它可以被緩存嗎?您是否嘗試過清除瀏覽器緩存並重試? – 2012-07-31 16:36:20

回答

1

關於你的評論,你說的可能是一個緩存問題,但它也可能是該樣式表的一個問題(雖然看起來不是這樣),另一個樣式表,或無效的HTML。

其中之一,我想在糾正你,因爲我認爲這可能會影響您如何CSS和HTML交互理解的事情是,在HTML元素class屬性不呼叫 CSS。相反,CSS規則告訴瀏覽器代理如何使用某些屬性來渲染事物。這就是爲什麼我們能夠使用元素ID,名稱,組名,類和其他值來確定哪些元素應用於哪個類。

我提到這一點,因爲如果你有無效的HTML(缺少結束標籤,缺少箭頭等),它可以做各種奇怪的事情。幾天前,它幫助我解決了一個問題,一個錯位的標籤實際上導致我的腳本在我的一個頁面上循環。

快速訪問並使用W3C Markup Validator驗證您的HTML。

+0

感謝您的澄清。我似乎無法讓頁面驗證。驗證器不喜歡3個元標記,所以我刪除了它們,但它們在驗證器中不斷出現錯誤,即使它們不再存在於頁面中。我今天沒有最好的運氣!即使我刪除了這些行,IE7看起來是一樣的。 – monalisa717 2012-07-31 17:59:35

+0

給驗證程序幾分鐘,然後再運行一次。它可能緩存(大聲笑緩存是一個真正的痛苦,今天似乎每個人) – 2012-07-31 18:06:59

+0

我終於得到它驗證,但它並沒有解決這個問題。無論如何,它仍然是一個好主意。謝謝。 – monalisa717 2012-07-31 20:35:30

相關問題