Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.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
Css IE8无法识别HTML5(即使使用shiv)_Css_Html_Internet Explorer_Internet Explorer 8_Html5shiv - Fatal编程技术网

Css IE8无法识别HTML5(即使使用shiv)

Css IE8无法识别HTML5(即使使用shiv),css,html,internet-explorer,internet-explorer-8,html5shiv,Css,Html,Internet Explorer,Internet Explorer 8,Html5shiv,我完全陷入了一个非常奇怪的IE bug,关于这个问题的其他帖子似乎都没有解决它。IE8并没有将CSS样式应用到我刚刚发布的网站上的HTML5标签上。在过去,我总是使用shiv和/或类似以下代码来修复此问题: <!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <script> document.creat

我完全陷入了一个非常奇怪的IE bug,关于这个问题的其他帖子似乎都没有解决它。IE8并没有将CSS样式应用到我刚刚发布的网站上的HTML5标签上。在过去,我总是使用shiv和/或类似以下代码来修复此问题:

<!--[if lt IE 9]>
 <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
 <script>
    document.createElement('header');
    document.createElement('nav');
    document.createElement('section');
    document.createElement('article');
    document.createElement('aside');
    document.createElement('footer');
 </script>
<![endif]-->

该网站是

IE8似乎识别出了标题,但它一到旁白行就停止工作

有人知道为什么会这样吗?任何帮助都将是惊人的


非常感谢

浏览器绝对讨厌无效的HTML

包含重复的
id
。具体来说,
#site
用于
中。有些浏览器只取第一个,而忽略其余的

第440行第18列:重复ID站点<代码>

第97行第19列:第一次出现ID站点是在这里<代码>


刚刚解决了这个问题,谢谢@Sparky672为我指明了正确的方向

对于其他有此问题的人,彩色碎片下方的曲线是使用SVG创建的。我的印象是,如果IE不能呈现SVG,它只会忽略它,但它似乎把它下面的一切都搞糟了


我还没有弄清楚如何删除IE8的SVG,因为用IE条件注释它似乎不起作用——但这是另一个问题。删除它修复了样式问题

我有一个解决方案,将您的内联SVG封装在比IE9更大的注释中

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

    <svg id="svg-source" height="0" version="1.1" 
      xmlns="http://www.w3.org/2000/svg" style="position:absolute; margin-left: -100%" 
      xmlns:xlink="http://www.w3.org/1999/xlink">

    </svg>

<!--<![endif]-->

要解决SVG删除问题(在确保具有有效的HTML之后)-请将以下代码应用到页面顶部,以取代标准的

*免责声明:我已经有一段时间没有在IE8上尝试过了。只有将SVG封装在div.lt-ie9中,并将其应用于父级,它才可能起作用-我不记得抛出了什么错误。我想测试一下,但我在Ubuntu上,这台机器上没有虚拟机*


注意:在父元素中使用条件IE注释的方法是常见的,有很多变体。您应该在这方面进行一些研究,并使用比此处提供的更一般的案例。这将为您提供此技术更广泛的好处,并专门解决此问题。

您的站点中有重复的
id
。您修复了无效的代码,但是否确保在重新测试时转储IE浏览器缓存?另外,你使用的是IE8的真实版本,还是某种测试仪、模式等?谢谢!我已经交换了ID,所以这个问题不存在,而且似乎没有解决它。除了没有ALT标记的图像之外,似乎没有任何其他严重的验证问题,这肯定做不到?@TomMaitland:不,我不认为这些小问题与此有关。然而,我从不拿IE冒险,总是努力实现100%完美的HTML验证。只是让网站100%有效的HTML5看看这是否有帮助,似乎没有。我一直在转储我的浏览器缓存,并一直在IE9上测试,但在IE8模式下。@TomMaitland:我真的不知道,但我知道在IE9上测试IE8模式并不是你所想的。它被称为“兼容性模式”,因为它是用来查看可能无法在IE9中正确呈现的旧网站的。然而,。被证明是一个SVG,无论出于什么原因,它都会阻塞所有内容。当我移除它时,它会修复。非常感谢。这也是关于硬盘映像的一个非常有用的提示。我也遇到了这个问题,SVG就是问题所在。有人找到解决办法了吗?
<!--[if lt IE 9]> <html class="lt-ie9"> <![endif]-->
<!--[if gt IE 9]><!--> <html> <!--<![endif]-->
.lt-ie9 svg {display: none;} /* this will remove all SVG elements with the class */