[PR]今日のニュースは
「Infoseek モバイル」

Opera CSSバグリスト

未知の要素を空要素として扱う(7.2)

症状

文書のMIMEタイプがtext/htmlであるときは、HTML勧告で定義していない要素(XHTML1.1のルビ関連要素など)を無視する空要素として扱う。このため、HTML文書ではこれらの要素にスタイルを指定しても無視される。

例示

<script type="text/javascript">
function list() {
  var src = document.getElementById('source');
  var nds = document.getElementById('nodes');
  for (var i = 0; i < src.childNodes.length; i++) {
    var litem = document.createElement('li');
    litem.appendChild(document.createTextNode(src.childNodes[i].nodeName));
    nds.appendChild(litem);
  }
}
</script>

<p id="source"><foo>1</foo>2<bar>3</bar></p>
<ol id="nodes"></ol>

123

    HTMLで定義されていない要素fooとbarを含むp要素の子ノードのリストをol要素に書き出しています。

    実行結果

    Netscape7.1、Opera7.11

    1. FOO
    2. #text
    3. BAR

    Opera7.23

    1. foo
    2. #text
    3. #text
    4. bar
    5. #text

    補足

    Opera7.2以降は文書のMIMEタイプを厳密に判断するので、XML系のMIMEタイプ(例:application/xhtml+xml, application/xml, text/xml)を指定した文書でなければHTML勧告外要素のスタイル指定が反映されません。従って文書の記述がXHTML準拠であるとしても、MIMEタイプがHTMLのものであればHTML勧告外要素へのスタイル指定は無効です。

    修正状況