7

私があちこちで集めて理解したものから(私が間違っているときは止めてください):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 では、対象の s に追加した専用の .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

IE8 は<nav>.

2015 年まで HTML 5 を使用しないでください。これには 2 つの理由があります。

  1. HTML5 に関する W3C の推奨事項は 2014 年 12 月まで最終決定されないため、現在のブラウザー実装では、最終決定されたドキュメントに何が含まれるかを推測しています。現在機能するコードは、その時点以降も機能することが保証されていません (ただし、おそらくそうなるでしょう)。ブラウザーを HTML5 に準拠させるために JS ハックを上に追加すると、潜在的な前方互換性の問題が追加されます。

  2. 2015 年までに、IE8 の市場シェアはおそらく最小レベル (2 ~ 3% 未満) になり、その時点で IE8 をサポートする利点は、HTML5 準拠のコードを使用しないことによるコストよりも優先されます。

当面は、HTML5 doctype を使用することをお勧めします。これは、上位互換性と下位互換性があり、HTML4 でも有効な HTML5 タグのサブセット (つまり、HTML4 と HTML5 で有効なタグ) を使用するためです。がほとんどです)。個人的にはetcなど<div class="nav"></div>の代わりに使うのが好きです。<nav></nav>

結局のところ、やりたいことをやればいいのですが、少なくともこれらの問題に注意する必要があります。特に、HTML5 が流行語として頻繁に不適切に使用されている世界ではなおさらです。

于 2013-03-26T16:04:40.540 に答える
1

古いブラウザには nav 要素がないためだと思います。

于 2012-04-24T22:21:44.123 に答える