フレーバ改装工事日報 #2: li 要素の再定義
すでにこれだけ日が開くと、日報もないような気もしますが…
YUI Reset CSS を使用したのち、各要素を再定義していく中で、 手こずったのは li 要素の再定義で、
IE では、
さらにもう一つ問題があって、 ul ブロック中の中の ol ブロック、またその逆、 加えて ul, ol ブロック中の二階層目の ul, ol ブロック中での li 要素の行頭文字を一階層目と違うものにしたい場合の 定義も別途必要になります。
と言うことで、真の正解はこれ。
自分でもあまり美しい方法ではないように思うんですが、 これ以外の解を見つけられませんでした。
より美しい解をご存じの方、是非教えてください m(_ _)m
YUI Reset CSS を使用したのち、各要素を再定義していく中で、 手こずったのは li 要素の再定義で、
li { list-style: inherit; }
ul { list-style: disc none outside; }
ol { list-style: decimal none outside; }
とすると、少なくとも Firefox では
ul, ol ブロックで指示した文字・記号が行頭にでるようになりますが、
Internet Explorer では
うまく行きません。IE では、
li { list-style: inherit; }
ul li { list-style: disc none outside; }
ol li { list-style: decimal none outside; }
と明示的に ul, ol ブロック中の li 要素に対して
明示的に再定義する必要があります。
しかし、逆にこのようにだけ指定すると、
今度は Firefox で
うまくいかなくなります。さらにもう一つ問題があって、 ul ブロック中の中の ol ブロック、またその逆、 加えて ul, ol ブロック中の二階層目の ul, ol ブロック中での li 要素の行頭文字を一階層目と違うものにしたい場合の 定義も別途必要になります。
と言うことで、真の正解はこれ。
li { list-style: inherit; }
ul, ul li { list-style: disc none outside; }
ol, ol li { list-style: decimal none outside; }
ul ul, ul ul li { list-style: circle none outside; }
ol ol, ol ol li { list-style: lower-alpha none outside; }
ul ol, ul ol li { list-style: decimal none outside; }
ol ul, ol ul li { list-style: disc none outside; }
三階層目はやめましょう (^^;>自分でもあまり美しい方法ではないように思うんですが、 これ以外の解を見つけられませんでした。
より美しい解をご存じの方、是非教えてください m(_ _)m

