使用"如果IE"条件评论来控制显示哪些内容?

时间:2013-04-08 23:36:03

标签: html internet-explorer cross-browser

我有一个简单的HTML登录表单,我只希望将其显示给使用Internet Explorer的用户(根据现有设计,显然不是选择),并在任何其他浏览器访问时显示错误消息。

我的问题是,如果有的话,使用正文中的<!--[if IE]>标记确定要显示的内容有多么错误?使用它有什么缺点吗?

的login.html

<html>
<head>
  ...
</head>
<body>

  <!--[if IE]>
    <form>
      ...
    </form>
  <![endif]-->

  <![if !IE]>
    This site can only be accessed via Internet Explorer
  <![endif]-->

</body>
</html>

我很清楚我可以使用JavaScript,CSS或服务器端的东西来执行此操作,但我希望尽可能少地更改代码和设计,并且实际上很好奇上述方法的缺点。

3 个答案:

答案 0 :(得分:3)

根据MSDN,从IE 10开始,标准模式不支持条件注释。

http://msdn.microsoft.com/en-us/library/ms537512(v=vs.85).aspx

也就是说,如果您通过使用它们来支持所需的浏览器,那就去吧。但如果他们逐步退出,不要感到惊讶。

另外,你的语法在非IE评论上是错误的。应该是两条评论,以便其他浏览器正确处理它。

<!--[if !IE]-->
    This site can only be accessed via Internet Explorer
<!--[endif]-->

答案 1 :(得分:1)

每当您尝试进行浏览器检测时,都会在应用程序中面临误报的风险。浏览器检测有多种形式:

  • 有条件的评论
  • 用户代理嗅探
  • 非标准API测试

您最好使用功能检测来识别您的浏览器支持/不支持的内容并提供替代方案。 Here's a good write up on both subjects

答案 2 :(得分:0)

在我看来只要:

  1. 您使用的是有效的html(css&amp; js)
  2. 它适用于您选择支持的所有浏览器
  3. 然后没有理由不这样做。

    很多关于html和css归结为个人偏好,只要你实现了上述目标然后去了它。