質問
私はカスタム タグを使用する公開システムを使用しています。これらはサーバー上で解釈されます。問題は、ローカルで表示すると、Opera で大きな問題が発生することです (カスタム タグは解釈されません)。
Opera は、これらのタグを他のブラウザとは異なる方法で処理します。ドキュメントの最後でタグを閉じているように見えます (タグに終了スラッシュが含まれている場合でも)。そのような動作がバグまたは機能とみなされるのかどうか疑問に思っています。
また、そのようなコードをハッキングして、Opera の HTML+CSS をローカルで (カスタム タグを解釈せずに) デバッグできるようにする方法があれば、お知らせください。ありがとう。
次のコードを試して、実際の動作を確認してください (ライブの例):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Non-standard tag behavior in Opera</title>
<style type="text/css" media="all">
div { background: yellow; padding: 1em; }
nonstandardtag { border: 1px solid red; }
</style>
</head>
<body>
<div>
<nonstandardtag>content of non-standard tag</nonstandardtag>
main tag content
</div>
<div>
<nonstandardtag />
main tag content
</div>
</body>
</html>
解決 3
これは Opera 10 で修正されているようです。だから私はそれが機能ではなかったと思います。
他のヒント
私は Opera を 5 年以上使用しています。最も標準に近いブラウザです。Opera で見栄えが悪いサイトのほとんどは、IE に「最適化」されています。
しかし、明らかな疑問は、なぜ標準以外のタグを使用する必要があるのかということです。div タグとspan タグは、ほぼすべての非標準ソリューションに使用できます。
ショート:これはバグではありません。 DOCTYPEにもかかわらず、ページはXHTMLとして解釈されません(そしてこれは意図的)。
HTMLは、XMLと同じ方法で自己終了タグ構文をサポートしていません。
HTMLでは、実際には<foo />
は<foo>
または<foo /="">
と同じです。理論的には<foo></foo>>
と同じです。
ページをX [HT] MLとして解釈するようブラウザに指示する必要があります。 DOCTYPEでは不十分です。これをローカルで行うには、ファイルに.xml
または.xhtml
拡張子が必要です。 HTTP経由でファイルを提供する場合、Content-Type
ヘッダーをapplication/xhtml+xml
または同様のXMLタイプに設定する必要があります(通常、静的ファイルの場合、ファイル拡張子はtext/html
になります)。
ライブサンプルは<=>として提供されるため、XHTMLとして解釈されず、期待どおりに動作しません。
ところで:XHTMLは非標準の要素を許可していません。それでも 独自の要素を追加する場合は、少なくとも独自の名前空間を使用する必要があります。
1つは、非標準の要素は不要です。 2つ目は、Doctypeで主張するものは何でも、これはXHTMLではなくHTMLです(<meta http-equiv="Content-Type" content="text/html…
で明確になります。これは明らかに、ブラウザーは HTML パーサーを使用し、空の要素に対してXMLの短縮構文<element/>
をサポートするべきではありません。
簡単な回答:不正な形式のデータをフィードした場合、ユーザーエージェントが行うことについて保証や要件はありません。