スタイルシートのテスト

2001-03-27
追記 2003-02-08
追記 2003-03-04

・これは自分用の備忘である。誤った記述・用語法が多々あると思われる。眉に唾つけて読むこと。
・文中のネスケ4はWindows版Netscape Navigator Ver.4.0x、MSIE4はMicrosoft Internet Explorer Ver.4.0x。

追記・補注・引用のための書式の模索

 追記・補注の書式を統一したい。要件は(1)スタイルシートOFFでも本文部分と区別がつくこと、(2)できるだけ“正しいHTML”から逸脱しないこと。いろいろ試してみた。

テスト0

追記 テスト0:引用タグ<BLOCKQUOTE>。従来は追記・補注もこのタグを使っていたが、これは“引用”の場合にのみ使うべきである、というのが今回の模索の出発点。

テスト1

追記  テスト1:これは<DIV>で括ってスタイルシート指定したもの。スマートかつ正しいやり方だが、これのみだとスタイルシートOFFで閲覧した場合、本文と区別がしにくい。文頭に追記と入れればOKか。

テスト2

追記 テスト2:これはリスト用タグ<DL>にスタイルシート指定を併用したもの。ネスケ4では1行目のみインデントされる。

MSIE Ver.6 ではここから下の左端の文字が欠ける。(ネスケ4やMSIE4では異常無しだった)
(2003-03-04 対策済み)

テスト3

追記 テスト3:これはリスト用タグ<DD>にスタイルシート指定したもの。MSIE4ではテスト1と同じになる。ネスケ4では表示が乱れる(テキストが指定段落に収まらず、ボーダーラインの表示位置も狂う)。この手は使えない。

テスト4

追記 テスト4:リスト用タグをスタイルシート指定した<DIV>で括ったもの。MSIE4ではテスト2と同じになる。ネスケ4ではテキストの後に余分な空白行が入る。

テスト3は問題無いがテスト4でもテスト2と同様の「左端欠け」現象が発生する。

結論
<BLOCKQUOTE>を引用以外の用途に使うのが後ろめたいというなら、テスト2〜4のようにリスト用タグをインデントに利用する手も不可である。妙なアガキはせずに<DIV>を使うべきか。


2003-02-08 追記

MSIE6ではテスト2とテスト4で異常が発生する(それ以降の部分の左マージンがおかしくなる)。<DIV>で囲ってあるこの追記段落も、影響を受けて左端がボーダーラインに重なる。ちょっとアレコレしてみたが原因不明。とりあえずメモ。

下の「不正規なクラス名」の表示例も、MSIE4とMSIE6では食い違っている。BLOCKQUOTE内のテキストの左端が枠からはみ出しているのは上に書いたテスト2、4の影響だろうが。

おや。この追記を書き加えたことで左端の文字欠けがさらにひどくなった。


2003-03-04 追記

左端文字欠け現象はスタイルシートのBODYに padding 指定を追加して対処。<DIV>と<BLOCKQUOTE>で文字がボーダーラインに重なる問題もpaddingの値を適宜増加して対処(いかにも泥縄だが)。

paddingの値を大きくした影響で、この下の「<SPAN CLASS=...>で正しいクラス名を使った場合」の例文は行の重なりが顕著になっている。(MSIE ver.6 とOpera ver.6.03で確認。ネスケ4ではSPANもブロック要素と同じ流儀で表示するため行は重ならない。)





不正規なクラス名

クラス名の先頭はアルファベットでなければならない。数字で始まる不正なクラス名を使った場合はどうなるか。(私がハマったドツボの記録)
(この項は、2001年3月26日のページ製作メモのためのメモである)

●<DIV CLASS=...>で使った場合

MSIE4はこの規則に寛容なのか問題は生じない。ネスケ4ではスタイルシートは機能しない。

●<BLOCKQUOTE CLASS=...>で使った場合

MSIE4は問題無し。表示スタイルはBLOCKQUOTEにCLASS指定が複合した形となる(右マージンありとなる)。ネスケ4ではCLASS指定部分は無視されるが、このページではBLOCKQUOTEを別に定義しているのでそれに従って表示される(ボーダーラインが青色になる)。

●<SPAN CLASS=...>で使った場合
MSIE4ではフォントサイズ・背景色の指定が有効、マージン・ボーダー指定は無視される。ネスケ4では指定はすべて無視される。

◎<SPAN CLASS=...>で正しいクラス名を使った場合
MSIE4では上と同じ。ネスケ4ではマージン・ボーダーも含めすべて有効となる(<DIV CLASS=...>で使った場合とまったく同じになる)。

結論
無難なクラス名にしておけば余計な苦労は回避できた。その場しのぎの定義を継ぎ足しているから原因特定に手間がかかった。反省。


ページ製作メモに戻る   ▲トップページに戻る