0

I'm working with a publishing system that uses custom tags. These are interpreted on the server. The problem is, that they cause big problems with Opera, when viewed locally (custom tags are not interpreted).

Opera is handling these tags differently from other browser. It looks like it is closing the tag at the end of the document (even if the tag contains closing slash). I'm just wondering, if such behavior is considered bug or feature.

Also, if you have any idea how to hack such code so that I can debug HTML+CSS for Opera locally (without interpreted custom tags), please let me know. Thank you.

Try the folowing code to see it in action (live example):

<!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>
4

5 に答える 5

2

要するに、これはバグではありません。DOCTYPE にもかかわらず、ページは XHTML として解釈されません(これは意図的なものです)。

HTML は、XML と同じように自己終了タグ構文をサポートしていません。

HTML では、実際にはまたは<foo />と同じです。理論上は と同じです。<foo><foo /=""><foo></foo>&gt;

ページを X[HT]ML として解釈するようにブラウザに指示する必要があります。DOCTYPE では不十分です。これをローカルで行うには、ファイルの拡張子が.xmlまたはである必要があります.xhtml。HTTP 経由でファイルを提供する場合は、ヘッダーをXML タイプまたは類似の XML タイプに設定する必要があります (静的ファイルの場合、通常はファイル拡張子が機能します)。Content-Typeapplication/xhtml+xml.xhtml

実際の例は として提供されるtext/htmlため、XHTML として解釈されず、期待どおりに動作しません。

ところで: XHTML は非標準要素を許可しません。とにかく独自の要素を追加したい場合は、少なくとも独自の名前空間を使用する必要があります。

于 2009-03-15T20:50:54.660 に答える
2

Opera を 5 年以上使用しています。最も標準に近いブラウザです。Opera で見栄えが悪いサイトのほとんどは、IE 用に「最適化」されています。

しかし、明らかな疑問は、なぜ非標準タグを使用する必要があるのか​​ということです。ほとんどすべての非標準ソリューションに div および span タグを使用できます。

于 2009-01-15T10:51:08.087 に答える
1

これはOpera 10で修正されたようです。だから私はそれが機能ではなかったと思います。

于 2009-01-18T13:58:43.997 に答える
0
于 2009-01-15T18:25:32.037 に答える
0

簡単な答え: 不正な形式のデータをフィードした場合にユーザー エージェントが行う可能性があることについて、保証や要件はありません。

于 2009-03-15T21:37:55.983 に答える