Html 在IE 8及以下版本中,标题消失,列表未设置样式

Html 在IE 8及以下版本中,标题消失,列表未设置样式,html,css,Html,Css,我注意到,在IE8及以下版本中,我的标题消失了,列表也没有样式 也就是说,他们看起来和他们应该做的不一样,而且他们有子弹 为什么会发生这种情况,我如何修复它 我知道我还没有包括html5垫片/html5 shiv,这会导致标题消失吗?我的元素和列表样式如何 以下是发生这种情况的页面链接: 以下是IE8中的外观:旧版IEs不呈现HTML5标记,因此应用于它们的样式将被忽略。(它们甚至不渲染为块,比如“哦,好吧,让我们假设它是一个div”。不,它完全被忽略) 是的,正如您所说,最好是添加到代码的标题

我注意到,在IE8及以下版本中,我的标题消失了,列表也没有样式

也就是说,他们看起来和他们应该做的不一样,而且他们有子弹

为什么会发生这种情况,我如何修复它

我知道我还没有包括html5垫片/html5 shiv,这会导致标题消失吗?我的
元素和列表样式如何

以下是发生这种情况的页面链接:


以下是IE8中的外观:

旧版IEs不呈现HTML5标记,因此应用于它们的样式将被忽略。(它们甚至不渲染为块,比如“哦,好吧,让我们假设它是一个div”。不,它完全被忽略)

是的,正如您所说,最好是添加到代码的标题中,如下所示:

<!--[if lt IE 9]>
<script src="path/to/your/shiv.js"></script>
<![endif]-->
作为一项建议,如果你的主要受众使用IE<9,那么目前仍然使用id
id
等于你实际想要的HTML5标签的div。比使用.js更好(如果禁用了.js,布局将像现在一样崩溃)。当旧IEs不受更多支持时,搜索和替换id与所需标记相同的文档将更容易

更新: 您的css是
main ul,[role=“main”]ul,#main ul
,但由于IE不知道标记main是什么,它会抛出ul,因此,您的css选择器不匹配。在这幅图中,所有他不知道的元素,他都转换成一个空元素:


左边是它实际渲染的代码,右边是真正的源代码。正如您所看到的,UL超出了
main

,如中所示,IE8没有很好地处理HTML5元素。它不仅没有设计这些元素的样式,而且有时(正如您所看到的)会使它们看起来完全消失。我在我的团队开发的网站上亲眼目睹了这一点。IE8将我们使用的所有
标签都转换成了
,这将我们所有的内容和样式都搞乱了。您需要使用来让它工作(为我们修复了它,HTML5 shiv脚本只是其中的一部分,但您可能至少只需要shiv脚本)。

HTML5元素中的列表如何?这是一个应该支持的旧元素,但在IE8中的样式不同…@IrfanMir问题在于它在HTML5元素中的存在。如果您将HTML5元素更改为受支持的元素(如
div
),或者完全删除包含的元素/将列表移出元素(当然,还可以更改样式规则以匹配),那么它应该在不使用shiv脚本的情况下正确呈现。HTML5元素中的列表如何?这是一个应该支持的旧元素,但在IE8中的样式不同…@IrfanMir您的css是
main ul、[role=“main”]ul、#main ul
,但由于IE不知道标签是什么,它将ul抛出。在这幅图中,他不知道的所有元素,都转化为一个空元素:啊,好的。非常感谢您的澄清。但即使是我选择了上面的答案,谢谢。我之所以选择这个答案,是因为即使是在你的答案出现的同一分钟,我还是第一次看到了他/她,他首先回答了我关于
    的问题。很抱歉,我也不能选择你的。但我对两者都投了赞成票。
    .someRoundCorner {
        border-radius:4px;
        behavior:url(path/to/css3pie/htc);
    }