Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 为什么`<;![endif]-->;`出现在IE渲染页面上?_Html_Internet Explorer - Fatal编程技术网

Html 为什么`<;![endif]-->;`出现在IE渲染页面上?

Html 为什么`<;![endif]-->;`出现在IE渲染页面上?,html,internet-explorer,Html,Internet Explorer,这件事变得非常愚蠢。。但在各种博客和微软网站上一遍又一遍地读到同样的简单答案后,我仍然感到困惑,因此我在这里问: 在本地网络上查看时,为什么此测试页面中的IE条件在IE页面底部呈现文本?我很确定这是IE“Downlevel hidden conditional comment”的正确语法 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title&

这件事变得非常愚蠢。。但在各种博客和微软网站上一遍又一遍地读到同样的简单答案后,我仍然感到困惑,因此我在这里问:

在本地网络上查看时,为什么此测试页面中的IE条件在IE页面底部呈现文本
?我很确定这是IE“Downlevel hidden conditional comment”的正确语法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>IEconditionalSyntax_wtf.html</title>
</head>
<body>
    well?<br>
    <!--[if IE]>
        wtf?!
    <![endif]-->
</body>
</html>

IEconditionalSyntax\u wtf.html
好吗?

更新:

为了节省阅读所有评论的时间。。。如果您有相同的问题: 下面的大多数评论基本上只是提出了可能的(但非决定性的,无效的)解释,一些人报告说他们无法重现这个问题。到目前为止,似乎没有人知道答案。我只在IE9/Win7(任何浏览器/文档模式)上查看页面时才看到问题。。。在我的本地服务器上(由我的本地iMac 10.6.8提供的页面,带有内置Web服务器)

但是,仅仅因为没有人能够消除我的本地服务器的这个问题,并不一定意味着下面的建议不能为您解决这个问题。在我们知道答案之前,我认为假设任何事情都没有帮助。因此,如果你的IE页面上出现了
,似乎没有什么好的理由,那么你可能真的想尝试下面列出的一切

Patrick提供了一个很好的解决方案,但它确实依赖于jquery


我辩论了是授予赏金(我开始的,赏金于2012年4月16日到期),还是接受一个答复,以便在应该得到承认的地方授予。。。对我来说没有明确的行动。。因此,我决定让系统自动将奖金的一半奖励给Patrick,以实现伟大的(尽管是jquery)解决方案。我不想给出全部悬赏,因为悬赏的全部目的是满足我的好奇心,即为什么我首先看到有条件的评论。我也不想接受任何答案(到目前为止),因为在这种情况下,我不会使用任何解决方法,因为这个问题只出现在我的本地网络上,因此与全球直播的生产代码无关。

我正在处理一个类似的工作问题

我建议在关闭内联网自动检测的情况下再次测试:

加上所有兼容性模式设置设置为关闭

加上元标记IE=edge


我想这也许能解决这个问题

IE10不支持条件注释,因此我建议使用完全不同的方法

Javascript在这方面工作得很好

下面是我所做的,它更易于使用,需要jquery

var userAgent, version;

if ($.browser.msie) {
  version = "ie" + $.browser.version.substring(0, 1);
  $("body").addClass("ie " + version);
} else if ($.browser.mozilla) {
  $("body").addClass("mozilla");
  if (navigator.userAgent.toLowerCase().indexOf('firefox') !== -1) {
    userAgent = navigator.userAgent.toLowerCase();
    userAgent = userAgent.substring(userAgent.indexOf('firefox/') + 8);
    userAgent = userAgent.substring(userAgent.indexOf('firefox/'), userAgent.indexOf('.'));
    version = "ff" + userAgent;
    $("body").addClass(version);
  }
} else if ($.browser.opera) {
  $("body").addClass("opera");
} else if ($.browser.webkit) {
  $("body").addClass("webkit");
}
然后您可以这样编写css:

span.something { width: 30px; }
.ie7 span.something {width: 25px;}
而且,更好的是,将它与Modernizer结合使用,您还可以基于功能支持编写规则。。请注意,这些都是全局js变量,所以您甚至可以根据浏览器将它们用于不同的功能。比如,如果你需要写ie7黑客之类的东西


编辑:用不太详细的版本替换代码,相同的结果

条件注释仅由internet explorer提供,internet explorer 9及以上版本应支持css中的大部分元素。注释适用于所有版本的IE(最好与5和6一起使用).

这是因为IE在本地网络上默认使用兼容性视图:

公司内部网上的许多站点(如本地网络) )Internet Explorer 7现在和将来都能使用吗 “IE”表现得像IE7。为了保持与这些 业务线网站和应用程序,IE8默认为 在“本地intranet”中显示内容时的兼容性视图 区“Localhost”和环回地址是一个例外 (例如,127.0.0.1+IPv6等效协议)。这些地址显示在IE8中 默认情况下的标准模式,以满足web开发人员的需求 以及经常测试互联网消费页面的设计师 (其中默认为IE8标准)在本地web服务器上

用户可以通过取消检查来覆盖“本地intranet”设置 “在兼容性视图中显示intranet站点”位于工具-> 兼容性视图设置


澄清一下,您看到这一点是因为您使用192.168.x.x访问该站点,然而,我敢打赌,其他没有看到这个问题的人都在使用127.0.0.1/localhost。

我遇到了一个类似的问题,条件语句出现在我的
中,当我在任何IE浏览器中显示它时,
显示在页面顶部,即使我将代码上传到服务器时也是如此

由于这是
之前的最后一行,我决定将我的打印css调用(无论如何我都需要这样做)移动到
和“哇!”之前的最后一行,现在
不再显示在IE中,甚至在我的本地服务器上。

我添加了
而不是
,它消失了。

HTML
我最近也有同样的问题。 在我的例子中,冲突代码是IE的条件语句中的元素之一,该语句在页面中具有最低的z索引。
在按顺序设置后,它将不会是最低的z索引,它已被修复。

您是否在严格标准模式下运行IE9或10?@ta.speot.is带有doctype,我认为他无法执行IE9上的行为()在使用IE9时,…在使用开发工具(F12)并将“浏览器模式”设置为IE7、IE8或IE9时,问题显示。。。将“文档模式”设置为相应的标准模式(非怪癖模式)。@govinda能否提供一个可公开访问的页面截图/?加上xhtml过渡或html 4过渡文档类型?这的确是一个奇怪的怪兽!我希望你能成功,但我没有看到预期的结果。你在回答中说的我都做了
<span class ="clean"><!--[if lt IE]></span>

<span class="clean"><![endif]--></span>
.clean { display: none; }