簡體   English   中英

CSS中的條件樣式

[英]Conditional Styling in CSS

就我在網絡上閱讀的所有內容而言,我從來沒有掌握過有條件的CSS樣式表。

我有一個div#logo-container,使用一些CSS3可以使它變得很好和集中。 對於IE8及以下版本,我需要為其指定位置,因為它部分位於屏幕外。

我的頭中有:

<!--[if lte IE 8]>
<html class="ie8">
<![endif]-->

<!-- [if gt IE 8]>
<html>
<!--<![endif]-->

...並且在我的樣式表中,我有:

#logo-container{
...CSS3 styling...
}

.ie8 #logo-container{
...new styling...
}

但是在IE開發人員工具中,當我模擬IE8時,新樣式不會生效,盡管如果我在“樣式”面板中手動更改它,它也會起作用。

我不明白什么? 謝謝!

您的代碼看起來通常是正確的,但是我不確定類選擇器中ID選擇器的特殊性,因此可能是一個問題。 也可能存在圍繞<html>元素的問題。

僅在條件DIV上使用ID選擇器的效果很好,但是,這是我使用的方法:

<html>
    <body>
        <!--[if lte IE 8]><div id="ie8"><![endif]-->

        ... Your content ...

        <!--[if lte IE 8]></div><![endif]-->
    </body>
</html>

CSS:

#logo-container {
...CSS3 styling...
}

#ie8 #logo-container {
...new styling...
}

我不明白什么?

就在這里:

但是在IE開發人員工具中,當我模擬IE8時,新樣式不會生效,盡管如果我在“樣式”面板中手動更改它,它也會起作用。

不幸的是,測試IE的舊版本並不那么方便。 當您在IE中使用開發人員工具時,您實際上並沒有模仿舊版本,這是偽造它的較差的嘗試。 特別是如果您使用的是IE10或更高版本,因為它們不再支持您使用的條件注釋。

最好的方法是在實際安裝舊版本IE的情況下運行虛擬機。

Microsoft自己當前在modern.ie為此提供工具。 就像選擇要測試的版本並將其下載到所需的虛擬機平台一樣簡單。 在撰寫本文時,它們支持HyperV,VirtualBox,VMware和VPC。

簡而言之:您的代碼是正確的,這是導致問題的測試/仿真方法。

暫無
暫無

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

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