私のいちばん好きな色はチャック・ノリス・レッドです
(htmhell.dev)-
Webページでテキストの色を設定する
- 一般的には、CSS の
colorプロパティを使って Web ページのテキスト色を設定する。 - しかし、HTML だけを使って色を定義する方法もある。
- 一般的には、CSS の
-
HTML の color 属性
- 過去の HTML バージョンでは、
color属性を使ってテキスト色を設定できた。 - たとえば
<font color="#d72b2b">HTMHell rules!</font>のように使う。 - ブラウザでこのコードを実行すると、テキストは赤色で表示される。
- 過去の HTML バージョンでは、
-
不正な色の値の処理
- HTML には一般的にエラー状態がなく、ブラウザは不正な値でもできる限り処理しようとする。
- たとえば
<font color="chucknorris">のような不正な色の値でも、ブラウザは赤色として処理する。
-
色の値のパース規則
- 初期処理: 値の先頭にある
#を取り除く。 - 不正な文字の置換: 0-9 または A-F/a-f 以外の文字は
0に置き換える。 - 長さの標準化: 文字列の長さが 0、または 3 の倍数でない場合は
0を追加する。 - RGB への分割: 文字列を 3 つの部分に分け、それぞれを赤・緑・青の値として使う。
- 長さの処理: 各構成要素の長さが 8 文字を超える場合は左側から削る。
- 最終色の生成: 最終的な赤・緑・青の値を組み合わせて色を生成する。
- 初期処理: 値の先頭にある
-
現代のブラウザにおける色の処理
- CSS は不正な色の値を処理するとき、値を拒否するのではなく補正する。
- たとえば
rgb(300, -50, 1000)はrgb(255, 0, 255)に変換される。
-
Web の柔軟性
- Web は柔軟性を基盤として構築されており、そのおかげで 1996 年の Web サイトも現代のブラウザでレンダリングできる。
- 完璧な Web は退屈かもしれず、Web はさまざまな入力を処理できるべきだ。
-
参考資料
- HTML 標準と色のパースに関する追加情報が提供されている。
1件のコメント
Hacker Newsの意見
この記事は、13年前のStack Overflowの質問内容を再利用したもののようだ
chocolateが#c0c0a0に縮まる結果が気に入っている文章は良かったが、著者は間違えている: chucknorris は赤色としてレンダリングされるのではなく、赤色が chucknorris としてレンダリングされる
Webの寛容な性質が好きだ
Chuck Norrisは色ではない
oを0に置き換えられるcoffeeは#c0ffeeに変換されるbaobabは#ba0bab、decodeは#dec0deに変換されるブラウザはもっと寛容でなく、完全性を強制すべきだという意見がある
対応する色名は、数字に名前を付けるようなものだ
寛容な態度がコンピュータ犯罪を可能にしているという点には同意する
意図しない赤色への変換かもしれない