在IE10中调试我的ASP.NET MVC(基于Razor的)网站时,我还需要设置IE特定的css。使用IE条件注释时,在将IE10切换到IE8标准渲染模式时,以下语法有效:
<!--[if IE]><!-->
<link href="@Url.Content("~/Content/global/global.ie.css")" rel="stylesheet" type="text/css">
<!--<![endif]-->
而这 - 不是:
<!--[if IE]>
<link href="@Url.Content("~/Content/global/global.ie.css")" rel="stylesheet" type="text/css">
<![endif]-->
后面的语法在大多数提供条件评论信息的网站上作为示例提供,包括MSDN上的官方页面。这两者有什么区别?提前谢谢。
答案 0 :(得分:7)
使用“下层显示的条件评论”来使其正常工作......
<![if IE]>
...statements...
<![endif]>
<![if IE]>
<link href="@Url.Content("~/Content/global/global.ie.css")" rel="stylesheet" type="text/css">
<![endif]>
下层显示的条件注释语法被某些验证服务标记为无效HTML。可以添加其他字符,以便在要显示的HTML内容之前和之后构建有效的HTML注释。
<!--[if !IE]>-->
YOUR HTML
<!--<![endif]-->
在上面的示例中,否定条件表达式阻止Internet Explorer在下层显示的条件注释块中显示HTML内容。但是,如果条件表达式的计算结果为true,则结束“ - &gt;”第一条评论与Internet Explorer中的HTML内容一起出现。要从Internet Explorer用户隐藏这些字符,请添加“
<!--[if !IE]><!-->
YOUR HTML
<!--<![endif]-->
以下是一些条件评论的例子。
<!--[if IE]><p>You are using Internet Explorer.</p><![endif]-->
<![if !IE]><p>You are not using Internet Explorer.</p><![endif]>
<!--[if IE 7]><p>Welcome to Internet Explorer 7!</p><![endif]-->
<!--[if !(IE 7)]><p>You are not using version 7.</p><![endif]-->
<!--[if gte IE 7]><p>You are using IE 7 or greater.</p><![endif]-->
<!--[if (IE 5)]><p>You are using IE 5 (any version).</p><![endif]-->
<!--[if (gte IE 5.5)&(lt IE 7)]><p>You are using IE 5.5 or IE 6.</p><![endif]-->
<!--[if lt IE 5.5]><p>Please upgrade your version of Internet Explorer.</p><![endif]-->
<!--[if true]>You are using an <em>uplevel</em> browser.<![endif]-->
<![if false]>You are using a <em>downlevel</em> browser.<![endif]>
<!--[if true]><![if IE 7]><p>This nested comment is displayed in IE 7.</p><![endif]><![endif]-->
的内容