好的,这就是我解决这个问题的方法。media queries
显然,在 IE 9 之前的任何版本的 IE在使用link
tagsmedia
属性时都不会附加样式表。此外,IE 8- 在出现这一行时有一些奇怪的行为:<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
事实证明,我什至不需要这一行: <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
这导致了问题,因为 Google Chrome Frame 不可用,edge 也不可用. 所以,我刚刚删除了那条线,现在一切都很好。
这是我必须做的肮脏的黑客攻击,以便让任何有兴趣的人都能在移动设备和 IE 7 和 8 上使用它:
<!--[if gte IE 9]>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<![endif]-->
<!--[if !IE]><!-->
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<!--<![endif]-->
<link rel="stylesheet" type="text/css" href="css/narrow.css" media="only screen and (max-device-width: 600px)" />
<!--[if lt IE 9]>
<link rel="stylesheet" type="text/css" href="css/index.css" />
<![endif]-->
<!--[if gte IE 9]>
<link rel="stylesheet" type="text/css" href="css/index.css" media="only screen and (min-device-width: 601px)" />
<![endif]-->
<!--[if !IE]><!-->
<link rel="stylesheet" type="text/css" href="css/index.css" media="only screen and (min-device-width: 601px)" />
<!--<![endif]-->
我希望在这些条件句中有一个else
陈述,但无论如何。现在可以使用并加载 index.css 文件,感谢上帝,因为我在这个文件上拔了头发!该narrow.css
文件不需要任何条件,因为 IE 7 和 8 无论如何都会忽略样式表,因为它使用媒体查询。