追記・補注の書式を統一したい。要件は(1)スタイルシートOFFでも本文部分と区別がつくこと、(2)できるだけ“正しいHTML”から逸脱しないこと。いろいろ試してみた。
テスト0
追記 テスト0:引用タグ<BLOCKQUOTE>。従来は追記・補注もこのタグを使っていたが、これは“引用”の場合にのみ使うべきである、というのが今回の模索の出発点。
テスト1
テスト2
MSIE Ver.6 ではここから下の左端の文字が欠ける。(ネスケ4やMSIE4では異常無しだった)
(2003-03-04 対策済み)
テスト3
テスト4
テスト3は問題無いがテスト4でもテスト2と同様の「左端欠け」現象が発生する。
結論
<BLOCKQUOTE>を引用以外の用途に使うのが後ろめたいというなら、テスト2〜4のようにリスト用タグをインデントに利用する手も不可である。妙なアガキはせずに<DIV>を使うべきか。
MSIE6ではテスト2とテスト4で異常が発生する(それ以降の部分の左マージンがおかしくなる)。<DIV>で囲ってあるこの追記段落も、影響を受けて左端がボーダーラインに重なる。ちょっとアレコレしてみたが原因不明。とりあえずメモ。
下の「不正規なクラス名」の表示例も、MSIE4とMSIE6では食い違っている。BLOCKQUOTE内のテキストの左端が枠からはみ出しているのは上に書いたテスト2、4の影響だろうが。
おや。この追記を書き加えたことで左端の文字欠けがさらにひどくなった。
左端文字欠け現象はスタイルシートのBODYに padding 指定を追加して対処。<DIV>と<BLOCKQUOTE>で文字がボーダーラインに重なる問題もpaddingの値を適宜増加して対処(いかにも泥縄だが)。
paddingの値を大きくした影響で、この下の「<SPAN CLASS=...>で正しいクラス名を使った場合」の例文は行の重なりが顕著になっている。(MSIE ver.6 とOpera ver.6.03で確認。ネスケ4ではSPANもブロック要素と同じ流儀で表示するため行は重ならない。)
クラス名の先頭はアルファベットでなければならない。数字で始まる不正なクラス名を使った場合はどうなるか。(私がハマったドツボの記録)
(この項は、2001年3月26日のページ製作メモのためのメモである)
●<DIV CLASS=...>で使った場合
●<BLOCKQUOTE CLASS=...>で使った場合
MSIE4は問題無し。表示スタイルはBLOCKQUOTEにCLASS指定が複合した形となる(右マージンありとなる)。ネスケ4ではCLASS指定部分は無視されるが、このページではBLOCKQUOTEを別に定義しているのでそれに従って表示される(ボーダーラインが青色になる)。
●<SPAN CLASS=...>で使った場合
MSIE4ではフォントサイズ・背景色の指定が有効、マージン・ボーダー指定は無視される。ネスケ4では指定はすべて無視される。
◎<SPAN CLASS=...>で正しいクラス名を使った場合
MSIE4では上と同じ。ネスケ4ではマージン・ボーダーも含めすべて有効となる(<DIV CLASS=...>で使った場合とまったく同じになる)。
結論
無難なクラス名にしておけば余計な苦労は回避できた。その場しのぎの定義を継ぎ足しているから原因特定に手間がかかった。反省。