7

根据我在这里和那里收集和理解的内容(当我错了时阻止我):只要您使用您的文档类型触发标准模式,子选择器(>)就可以在 IE7+ 上工作,html5<!DOCTYPE html>应该这样做。

不过,我的CSS:

nav > ul > li > a
{
    padding: 0.2em 2em 0.2em 2em;
    background-color: #FAFAFA;
}
nav > ul > li > a:hover
{
    background-color: #AFAFAF;
}

似乎没有到达我的html:

<!DOCTYPE html>
...
<body>
<header>
    <nav>
        <a class="inblock valignC logo" href="/"><img src="static/img/logo.gif" /></a>
        <!--Menu nav : LOGO | Agence | Portfolio | Equipe | Clients | Contact-->
        <ul class="inblock valignC">
            <li class="inline"><a class="ie" href="/agence/">Agence</a></li>
        ...
        </ul>
...

在 IE8 中,我必须使用我在 targetted 上添加的专用 .ie 类<a>

有什么解释吗?

4

4 回答 4

11

9 以下的 IE 版本需要使用HTML5 Shiv :

<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
<![endif]-->
于 2012-04-24T22:24:13.497 回答
2

可能不是选择器,而是标签本身,因为它们在 IE8 及以下版本中没有定义为标准标签。ul > li您可以通过使用并查看选择器是否工作来查看是否是这种情况。

除了在更多人升级他们的浏览器之前不使用 HTML5 标记之外,您真的无能为力。就个人而言,我现在宁愿使用<div class="nav">

于 2012-04-24T22:23:22.537 回答
1

我认为这是因为旧版浏览器没有导航元素。

于 2012-04-24T22:21:44.123 回答
1

它不起作用,因为 IE8 不理解或“正确”实现 HTML 标签,例如<nav>.

在 2015 年之前不要使用 HTML 5。这有两个原因:

  1. W3C 对 HTML5 的建议直到 2014 年 12 月才最终确定,因此任何当前的浏览器实现都在猜测最终确定的文档将包含什么内容。现在可以工作的代码不能保证在那之后可以工作(但可能会)。在顶部添加 JS hack,以使浏览器兼容 HTML5,增加了更多潜在的前向兼容性问题。

  2. 到 2015 年,IE8 的市场份额可能会处于最低水平,例如低于 2-3%,此时支持 IE8 的好处将被不使用 HTML5 兼容代码的成本所抵消。

同时,使用 HTML5 文档类型是一个好主意,因为它向前和向后兼容,并使用在 HTML4 中也有效的 HTML5 标签子集(换句话说,在 HTML4 和 HTML5 中有效的标签,是他们中的大多数)。就个人而言,我喜欢使用<div class="nav"></div>而不是<nav></nav>etc 等。

归根结底,做你想做的事,但你至少需要意识到这些问题,尤其是在 HTML5 是一个经常被不恰当地使用的流行词的世界里。

于 2013-03-26T16:04:40.540 回答