1

今日、私は偶然これを発見しました:

<hr width=100% color=red />

赤い水平線を作成しますが、

<hr width=100% color=red/>

緑色の水平線を作成します。

これは色だけではなく、色名redの直後に がある/と別の色が描画されます。#000000これは(to )のようなカラー コードでは機能しません#000000/

好奇心から、ここに私の質問があります:色はどのように選ばれますか? これはバグですか、それとも意図したものですか?


追加情報:

ブラウザ:Google Chrome 29.0.1547.66m

インストールされているプラ​​グイン/アドオン: Ad Block Plus

これを IE 10 でテストしましたが、Chrome と同じ問題があります。

4

4 に答える 4

1

ブラウザーのセマンティックアナライザーは<hr>タグを検出し、後でそのラベルの属性を決定しようとします。

空白をトークンの区切りとして使用すると、最初の行には 3 つの属性があります (html の終了タグの正しいスラッシュは / であることに注意してください)。この場合、2 番目のトークンcolor=redは属性 (色) および値 (赤) として解釈されます。2 行目には 2 つの属性しかありません。2 番目の属性 (色) の値red\は、色の連想配列で有効な識別子ではありません。

ブラウザが青色を返すのはなぜですか?

各ブラウザーは異なる方法で例外を管理します。おそらく、ブラウザーが連想配列の色の最初の値を返す可能性があります。

属性値の区切り文字として引用符を使用することをお勧めします。

于 2013-09-17T15:43:56.187 に答える
-1

color 属性の使用に問題がある可能性があります。ボーダーカラーを試してみてください。

<hr width="100%" style="border-color:#f00">
于 2013-09-17T15:35:20.417 に答える