Re: margin-left の変わりに、ULの入れ子
Article <20050129150801.1338f79f.forest@ma.kcom.ne.jp> にて、
"K.Moriyama" <forest@ma.kcom.ne.jp> さん、
> 森山と申します。
>
> ● 以下のように表示したい場合、
>
> 第1行目
> 第2行目
> 第3行目
> 第4行目
> 第5行目
>
> ● 以下のように、margin-left を指定する変わりに、<UL> を使用する
> のは、HTML 的には、まずいのでしょうか?
XHTML 1.0, HTML 4.01などのDTDを見る限り、ul要素はli要素を1つ以上子に持
つことになっていますので、まずいのではないかと思います。
<!ELEMENT ul (li)+>
divではなくliを使って、スタイルシートでリストのインジケータをなくす方
法もあろうかとは思いますが、こういうときはblockquote要素を使うべきなん
じゃないかと思います。
一般的には入れ子が下るたびに右マージンが加算されてしまいますので、その
あたりをスタイルシートでコントロールする必要はあります。
もう一つ。直接関係はないですが、たとえばXHTML 1.0ではhead要素はtitle要
素かbase要素のどちらか一つを少なくとも子要素に持たなくてはなりません。
<!ELEMENT head (%head.misc;,
((title, %head.misc;, (base, %head.misc;)?) |
(base, %head.misc;, (title, %head.misc;))))>
> <html lang="ja">
> <head>
> <style type="text/css">UL { margin-top: 0em; margin-bottom: 0em }
> </style>
> </head>
> <body>
> <DIV>第1行目</DIV>
> <UL>
> <DIV>第2行目</DIV>
> <UL>
> <DIV>第3行目</DIV>
> </UL>
> <DIV>第4行目</DIV>
> </UL>
> <DIV>第5行目</DIV>
> </body>
> </html>
というわけで、こんな感じではどうでしょう。
<?xml version="1.0" encoding="ISO-2022-JP"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>block test</title>
<style type="text/css">blockquote { margin-top: 0em; margin-bottom: 0em }</style>
</head>
<body>
<div>第一行</div>
<blockquote>
<div>第二行</div>
<blockquote>
<div>第三行</div>
</blockquote>
<div>第四行</div>
</blockquote>
<div>第五行</div>
</body>
</html>
この状態でW3CのHTML Validator(http://validator.w3.org/), CSS
Validator(http://jigsaw.w3.org/css-validator/validator-uri.html)ともに
問題は指摘されていません。
--
中山隆二
nakayama.ryuji@anet.ne.jp
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735