为样式表创建有效的条件注释,而不会出现“伪造注释”验证器错误

时间:2013-07-05 14:00:58

标签: html validation conditional-comments

我的头标记中有以下内容:

<link rel="stylesheet" href="Scripts/styleMain.css" media="all" type="text/css" />
<![if gte IE 9]><!-->
<link rel="stylesheet" href="Scripts/styleMob.css" media="screen and (max-width:500px)" type="text/css" />
<link rel="stylesheet" href="Scripts/styleDes.css" media="screen and (min-width:501px)" type="text/css" />
<!--<![endif]-->
<!--[if lt IE 9]>
<link rel="stylesheet" href="styleDes.css" type="text/css" />
<![endif]-->

问题是,第二行被认为是虚假评论,而同一行上的第二个标记被认为是评论的过早结束。

在同一行上添加额外的标签,并在第一个endif上给我两个错误的评论错误。

有什么方法可以让我的样式表有条件,并让它们验证?或者我注定要在我的OCD编码中使用无效代码?

2 个答案:

答案 0 :(得分:7)

你的第二行在错误的地方有开场评论分隔符:

<!--[if gte IE 9]><!-->

请注意,此处的语法突出显示它现在正确地突出显示为注释。

以下标记的其余部分也会正确突出显示,因为<!-->现在被视为<!后跟-->,而不是<!--后跟{ {1}}就像你的无效标记一样:

>

代码中未突出显示为注释的位将是IE9及其他浏览器以及其他浏览器将如何看到您的标记。较旧的IE只会看到您的第一个和最后一个<link rel="stylesheet" href="Scripts/styleMain.css" media="all" type="text/css" /> <!--[if gte IE 9]><!--> <link rel="stylesheet" href="Scripts/styleMob.css" media="screen and (max-width:500px)" type="text/css" /> <link rel="stylesheet" href="Scripts/styleDes.css" media="screen and (min-width:501px)" type="text/css" /> <!--<![endif]--> <!--[if lt IE 9]> <link rel="stylesheet" href="styleDes.css" type="text/css" /> <![endif]--> 元素。

答案 1 :(得分:0)

这应该有效。

<link rel="stylesheet" href="Scripts/styleMain.css" media="all" type="text/css" />
<!--[if gte IE 9]>
<link rel="stylesheet" href="Scripts/styleMob.css" media="screen and (max-width:500px)" type="text/css" />
<link rel="stylesheet" href="Scripts/styleDes.css" media="screen and (min-width:501px)"   type="text/css" />
<!--<![endif]-->
<!--[if lt IE 9]>
<link rel="stylesheet" href="styleDes.css" type="text/css" />
<![endif]-->