HTML5 タグを使い始めたいのですが、HTML5 をサポートしていないブラウザーでどのように表示されるか心配です。html5shiv は、9 未満の IE ブラウザーで使用できるソリューションのようです。
しかし、ブラウザーが HTML5 をサポートしておらず、IE ではない場合はどうなるでしょうか。じゃあ何?なぜ html5shiv は IE のものなのですか?
HTML5 タグを使い始めたいのですが、HTML5 をサポートしていないブラウザーでどのように表示されるか心配です。html5shiv は、9 未満の IE ブラウザーで使用できるソリューションのようです。
しかし、ブラウザーが HTML5 をサポートしておらず、IE ではない場合はどうなるでしょうか。じゃあ何?なぜ html5shiv は IE のものなのですか?
section
まず、明確にするために、html5shiv は、特定の HTML5 タグ ( 、article
など) を正しくスタイルできるようにするだけです。これは、ブラウザに「HTML5 サポート」というより一般的な意味でのサポートを提供するものではありません。
そのことを念頭に置いて、これらの HTML5 タグのスタイリングを正しく許可していないブラウザーは IE <9 だけであるため、html5shiv がそれらにのみ適用されるのはそのためです。
他のブラウザ (Netscape Communicator 4 のような非常に古いものでも) は、認識されないタグを正しく解析し、期待どおりに CSS を適用できるようにします。
zzzzBov が彼の回答で指摘しているように、正しいデフォルト スタイル (ほとんどの (すべての?) ケースでどちらかdisplay: block
または何もない) がない可能性があるため、oldIE 以外のブラウザーでもそれらを追加する必要があります。ただし、oldIE 以外のブラウザーでは問題なく動作しますが、oldIE では、これらの既定のスタイル (またはその他のスタイル) の追加は、html5shiv を使用する場合にのみ機能します。
display
他のブラウザーは、cssプロパティを設定するだけで非標準要素をサポートします。
header,
footer,
article,
section,
...etc... {
display: block;
}
古いバージョンの Firefox および Webkit ベースのブラウザー (HTML5 より前) の場合、必要なのはこれだけでした。
htmlshiv は「IE」のものです。なぜなら、IE のいくつかのバージョンは [まだ] 多くの HTML5 機能を欠いているからです。Chrome やその他の Webkit ブラウザーで機能するものは IE では機能しない可能性があるため、htmlshiv は不足している機能を JavaScript に適応させようと試みます。正確にはポリフィルでもあります。