从我在这里和那里收集和理解的东西(当我错了时阻止我):
只要您使用doctype触发标准模式,子选择器(&gt;)就可以在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中,我必须使用我在目标<a>
上添加的专用.ie类。
任何解释?
答案 0 :(得分:11)
您需要在9:
下使用HTML5 Shiv for IE版本<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
<![endif]-->
答案 1 :(得分:2)
它可能不是选择器,而是标签本身,因为它们在IE8及以下版本中未被定义为标准标签。您可以通过仅使用ul > li
并查看选择器是否有效来查看是否是这种情况。
<div class="nav">
。
答案 2 :(得分:1)
我认为这是因为旧浏览器没有导航元素。
答案 3 :(得分:1)
它不起作用,因为IE8无法理解或“正确”实现<nav>
等HTML标记。
2015年之前不要使用HTML 5.这有两个原因:
W3C对HTML5的建议直到2014年12月才最终确定,因此任何当前的浏览器实现都在猜测最终文档将包含的内容。现在可以使用的代码不保证在该点之后工作(但可能会)。添加JS黑客,使浏览器符合HTML5标准,增加了更多潜在的前向兼容性问题。
到2015年,IE8的市场份额可能会达到最低水平,例如:低于2-3%,此时,支持IE8的好处将被不使用HTML5兼容代码的成本所抵消。
与此同时,使用HTML5文档类型是个好主意,因为它是向前兼容的,并且使用HTML4中也有效的HTML5标记子集(换句话说,HTML4中有效的标记) HTML5,其中大部分都是)。我个人喜欢使用<div class="nav"></div>
代替<nav></nav>
等等。
在一天结束时,按照自己的意愿行事,但至少需要了解这些问题,尤其是在HTML5是经常使用不当的流行语的世界中。