2012-06-06 35 views
1

好的,這是我第一次使用html5boilerplate,但不能從我的css文件中獲取IE樣式。html5boilerplate IE有條件不工作

我有這樣的標題(每頁的設置)

<!doctype html> 
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ --> 
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]--> 
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]--> 
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]--> 
<!-- Consider adding a manifest.appcache: h5bp.com/d/Offline --> 
    <!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]--> 
<head> 

,在我的樣式表我有

#container { float:right; margin-top: 0px; } 

.ie6 #container { margin-top: 5px; } 

.ie7 #container { margin-top: 10px; } 

.ie8 #container { margin-top: 15px; } 

,它不工作。這真的很簡單,我錯過了什麼。

您的建議表示讚賞。

回答

6

除非你使用一些javescript毒刃,那麼你應該使用什麼實際定義:

html class="no-js lt-ie9 lt-ie8 lt-ie7

因此,嘗試,

#container { float:right; margin-top: 0px; } 

.lt-ie7 #container { margin-top: 5px; } 

.lt-ie8 #container { margin-top: 10px; } 

.lt-ie9 #container { margin-top: 15px; } 
+0

非常感謝你,現在這麼簡單,一直在瘋狂工作,錯過了這一點。非常感激。 – Ant

3

的CSS類名稱不匹配。例如,在條件註釋中的lt-ie8和樣式表中的ie8

一個版本我用:

<!--[if lt IE 7 ]> <html class="no-js ie ie6" lang="en"> <![endif]--> 
<!--[if IE 7 ]> <html class="no-js ie ie7" lang="en"> <![endif]--> 
<!--[if IE 8 ]> <html class="no-js ie ie8" lang="en"> <![endif]--> 
<!--[if IE 9 ]> <html class="no-js ie ie9" lang="en"> <![endif]--> 
<!--[if (gt IE 9)|!(IE)]><!--> <html class="no-js" lang="en"> <!--<![endif]--> 

與像CSS規則的組合:

.ie6 #container {...} 
.ie7 #container {...} 
.ie8 #container {...} 
+0

非常感謝,我不相信我錯過了。這是完美的。非常感激。 – Ant

0

我看到那些所謂的 「LT-IE7」 條件語句班 「LT-IE8」 ,和「lt-ie9」,但在你的CSS中,我使用名爲「ie6」,「ie7」和「ie8」的類來看你,它們是不同的。嘗試:

#container { float:right; margin-top: 0px; } 

.lt-ie7 #container { margin-top: 5px; } 

.lt-ie8 #container { margin-top: 10px; } 

.lt-ie9 #container { margin-top: 15px; }