1

好的,这是我第一次使用 html5boilerplate,但无法从我的 css 文件中获取 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; }

它不起作用。真的那么简单吗,我是不是错过了什么。

感谢您的建议。

4

3 回答 3

6

除非您使用一些 javescript shiv,否则您应该使用实际定义的内容:

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; }
于 2012-06-06T17:59:59.443 回答
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 {...}
于 2012-06-06T18:02:07.780 回答
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; }
于 2012-06-06T18:02:52.740 回答