2003年12月11日

カテゴリ
html

title 属性のツールチップ内で改行

2004-01-03 14:38 更新

多くのウェブブラウザは、HTML の title 属性の内容をツールチップとして表示する。内容が長い場合は適当に改行して表示することもある。では、任意の位置に改行を入れることはできないのだろうか?

WinIE では

title="1行目
2行目"

実は、これで Windows IE はツールチップ内で改行してくれる。つまり、改行コードを空白扱いせず、改行として扱ってくれるのだ。しかし、妙な位置で改行すると、可読性が落ちるし、気持ち悪い。もうちょっとマシな方法はないものだろうか。

Windows での改行コードは CR+LF で、10 進表記コード番号は CR が 13 、LF が 10 だ。そこで、先程の例を次のように書き換えてみる。なお、 
 は数値文字参照で、先程の改行コードの番号に対応している。

title="1行目
2行目"

これでも OK らしい。ツールチップ内で改行された

でもね

title 属性の内容は CDATA であり、UA は次のように解釈すべしとなっている。

  • 文字実体は文字で置き換える。
  • 改行文字LFは無視する。
  • 個々の改行文字CRあるいはタブ文字は、1つの空白文字で置き換える。

よって、
 の正しい解釈はこうなる。

  1. 数値文字参照が改行文字に置き換えられる
  2. CR+LF のうち LF が無視され、CR のみになる
  3. CR は 1つの空白文字に置き換えられる

つまり、次のように書いたのと同じ事になる。

title="1行目 2行目"

これが改行されるわけないよね。他のブラウザでは改行されないと思っておいた方が良い。

投稿者
nero
投稿日
2003年12月11日 15:55

コメント

コメントの投稿

入力した情報を記憶させますか?