CSSでリストをデザインするための準備
HTMLにはリストを作成する要素がいくつか用意されていますが、ここでは順序リストを対象に解説を行います。順序リストを作成するには、<ul>要素または<ol>要素を使用し、リストの中に並ぶ項目を<li>で作成します。
これらの要素に対してスタイルを適用していくわけですが、実際にマークアップを始める前にボックス・モデルの知識を予習しておきましょう。ボックスに関する知見が備わっていないと、リストのデザインでつまずくことがあります。なぜなら、リストは入れ子構造になっており、複数のボックスを操作することが前提だからです。
また、ブラウザごとにHTMLのレンダリング・エンジンが異なるため、CSSでデザインする場合は複数の環境で確認しながら作業しましょう。主要なブラウザで起こる問題が、もう一方のブラウザでは起こらないという現象が、しばしば見受けられるからです。
ここでは、リスト関連のプロパティの知識があるものとして解説を行います。
list-style-type:マーカーの種類を変更するlist-style-position:マーカーの位置を定義するlist-style-image:マーカーに画像を使用するlist-style:上記の機能を一括操作する
順序リストの基本構造を押さえる
順序リストの構造は、リスト全体のボックスとリスト項目を作る子要素の入れ子です。しかし、そこには他の要素にはない後付の要素が発生します。それが::markerという擬似要素です。
::markerは、displayプロパティの値がlist-itemの要素に付与されるもので、既定値では<li>や<summary>が該当します。この存在を把握することが、順序リストの基本構造を理解するための第一歩です。特に、CSSでリストをデザインする祭に上手くいかない原因のひとつがこれです。
::markerは、ChromeやFirefoxなどのブラウザが採用している仕様であるため、WebKit系のブラウザでは動作が異なる場合があります。以下に示す内容は、一部の環境やスマートフォン向けのモバイル・ブラウザ全てに一致するわけではありません。しかし、リストの基本を押さえるという意味では、非常に大事な知識です。
マーカーを表示させたくない場合は、list-style-typeの値にnoneを指定します。この時、マーカーが表面的に見えなくなるのではなく、擬似要素の::markerが作成されなくなるという点を覚えておきましょう。
それでは、ボックスの構造を可視化して::markerがどこに配置されているのかを確認します。マーカーが配置される位置はlist-style-positionの値によって変わります。
