CSS子(>)选择在IE8不工作?(css child (>) selector not wo

2019-09-16 17:29发布

从我收集并在这里和那里了解(阻止我,当我错了):子选择器(>)只要你触发你的DOCTYPE标准模式适用于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中,我必须使用我加入了专用.IE类的针对性<a>秒。

任何交代?

Answer 1:

您需要使用HTML5希夫针对IE版本9下:

<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
<![endif]-->


Answer 2:

这是可能的,这不是选择,而是标签本身,因为它们没有定义为IE8及以下标准的标签。 你可以看到,如果这是刚刚使用的情况下ul > li ,看是否选择作品。

是不是真的比不使用HTML5标签,直到更多的人升级他们的浏览器多少你可以做的,其他。 个人而言,我宁愿使用<div class="nav">现在。



Answer 3:

我认为这是becouse旧的浏览器不具备的导航元素。



Answer 4:

这是行不通的,因为IE8不理解,或“正确”的工具,HTML标记,如<nav>

不要使用HTML 5,直到2015年。这是有2个原因:

  1. 对于HTML5的W3C推荐标准尚未最终确定,直到2014年12月,所以任何当前的浏览器实现在猜测什么定稿文件将包含的内容。 该工程目前典,不保证该点后,开始工作(但可能会)。 在上面添加JS黑客,使浏览器HTML5兼容,增加了更多的潜在的向前兼容性问题。

  2. 到2015年,针对IE8的市场份额很可能会在例如低于2-3%,在这一点最低水平,支持IE8的好处将不使用兼容HTML5代码的代价outwayed。

在此期间,它是使用HTML5 DOCTYPE是个好主意,因为它是向前和向后兼容,使用也是有效的HTML4(换句话说标签HTML5标签的子集,是在HTML4和HTML5,有效其是大多数)。 我个人喜欢使用<div class="nav"></div>而不是<nav></nav>等等等等

在一天结束的时候,做你想做的,但是你必须要意识到这些问题,至少,尤其是在这个世界上,HTML5是频繁和不恰当使用的流行语。



文章来源: css child (>) selector not working in IE8?