簡體   English   中英

兼容模式下的IE9無法正確顯示CSS樣式

[英]IE9 in compatibility mode not displaying CSS styles correctly

我有一個嵌套div(見下文),它有不同的CSS類,為容器提供背景顏色和文本格式

<div class="section">
    <div class="sectionTitle">
        <dx:ASPxLabel ID="lblSectionTitle" runat="server" Text='<%# Eval("SectionTitle") %>'></dx:ASPxLabel>
    </div>

    <div class="sectionTitle">
        <dx:ASPxLabel ID="lblSectionDesc" runat="server" Text='<%# Eval("SectionDescription") %>'></dx:ASPxLabel>
    </div>

div部分有一個結束標記,其中有更多內容正確呈現。

上面的CSS是:

.section
{
    padding: 5px; 
    background-color: #ffffff; 
}

.sectionTitle
{
    font-size: 11px; 
    font-family: Arial; 
    font-weight: bold;
    color: #546fb2;
}

當我在.section中注釋掉背景顏色時,正在應用sectionTitle的格式,但是當我將背景顏色放在那里時,它會覆蓋sectionTitle的顏色。 我已經嘗試將.section的顏色設置為匹配.sectionTitle但這仍然不起作用。

在每個瀏覽器(IE9不兼容,Firefox,Chrome)它工作正常,我已經看了幾個小時現在這有點令人沮喪,因為我無法發現問題。

內容位於ASP.NET頁面上,該頁面使用具有doctype的MasterPage:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

有人可以幫忙解釋一下嗎?

提前致謝

安迪

Internet Explorer具有兼容性“功能”,它始終以兼容模式呈現本地網絡上的站點。 你必須以兩種方式之一明確地關閉它。

<meta http-equiv="x-ua-compatible" content="ie=edge" /> 

這個邊緣標記告訴ie始終呈現它支持的最標准模式。

如果你使用像asp.net或php這樣的服務器端技術,那就是使用另一種方法(我更喜歡),這就是添加一個http頭(在asp.net中,這是在global.asax中,也是chrome = 1使能) chromeframe如果安裝):

protected void Application_BeginRequest() 
{ 
    Response.Headers.Add("X-UA-Compatible", "IE=edge, Chrome=1"); 
} 

編輯:

還有第三種方法,那就是在Internet選項的兼容性視圖選項卡中禁用它。 但是,這只會影響您的計算機。

此外,如果可能的話,最好使用頭方法,而不是使用元標記方法。 當瀏覽器讀取元標記時,它已經處於主模式。 元標記僅影響文檔呈現模式,而不影響瀏覽器兼容模式。 在某些情況下,存在微妙的差異,可能會產生影響。

嘗試將此添加到標題

 <meta http-equiv="x-ua-compatible" content="ie=emulateie9" />

在IE9上按F12,如果有文檔模式Qirks,則必須通過元標記修復它。 也許這是你的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM