ユーザエージェントは、CDATA型の値を持つ属性(class, alt, name, valueなど)の属性値の先頭または末尾にある空白文字は無視してよいとされている。しかし、Operaは先頭の空白文字を無視せず、空白のある値と空白のない値を別の値として扱ってしまう。
<style type="text/css">
.sample {
font-weight: bold;
}
</style>
<ul>
<li class=" sample">先頭空白あり</li>
<li class="sample ">末尾空白あり</li>
<li class=" sample ">先頭末尾空白あり</li>
<li class="sample">空白なし</li>
</ul>
空白文字を無視するのであれば、4つのリストアイテムの文字列はボールド体で表示されるはずです。
N7.02での表示(標準モード)
Opera7.11での表示(標準モード)
HTML4.01仕様書では空白文字を「無視してもよい」としています。「無視しなければならない」とされていない以上、Operaの実装は厳密にはバグではないといえるかもしれません。
このバグを利用してブラウザ振り分けを行える可能性がありますが、仕様書は先頭あるいは末尾に空白文字のある属性値を宣言することを避けるべきであると定めています。
Opera6.06、Opera7.11標準モード、Opera7.11互換モードで不具合の発生が確認されました。