3

これはクロムで動作します(そして私は他のすべての主要なブラウザを想定しています)

-html-

<invalid></invalid>

-css-

invalid {
    color: red;
}

<invalid>無効な要素を表します(html標準の一部ではありません)

ここに例があります:http://jsfiddle.net/myhonor/4H7Hj/

しかし、IEでこれを試してみると、機能しません。

なぜこれがあり、これを修正する方法がありますか(DTDのものですか?)

4

2 に答える 2

5

バージョン9より前のIEは、マークアップで認識されないタグに対応するDOM要素を自動的に作成しません。これが、HTML5要素が古いIEで機能しない主な理由です。古いIEでは、機能するためにHTML5shivを含める必要があります。

この場合、HTML5を書いているわけでもありません。HTMLとはまったく関係のない独自のマークアップ言語を作成しています。これを修正する最も簡単な方法は、実際にHTMLを作成することです...または、独自のタグを作成することを主張する場合は、minitechが示すように手動でタグを作成する必要がありますが、完全に独自に接続することを期待してください。1


1 ブラウザによってHTMLの一部として認識されない要素は、通常HTMLUnknownElement、DOM(IE9以降を含む)でオブジェクトとして作成されます。これは、上位互換性のために行われると言われています(HTML5を参照)。これらのオブジェクトにはの基本的なプロパティがありますがHTMLElement、それ以外に進むべきことはあまりありません...

于 2012-07-05T17:33:30.987 に答える
5

これは、バージョン8までのInternet Explorerの動作方法です。これを修正するにdocument.createElementは、無効な要素の名前を指定して呼び出します。

document.createElement('invalid');

これが更新されたjsFiddleです。これは、表示されるすべてのHTML5シブと同じ考え方です。そして、他の誰もがすでに示唆しているように、有効なHTMLを書くことが通常は最良の解決策です:)

于 2012-07-05T17:34:08.817 に答える