リストのスタイリングの基本
ナビゲーションをどの要素でマークアップすべきかといった明確な基準はありませんが、実務では、ul要素やol要素といったリスト関連の要素でマークアップするケースが多くあります。以下、リスト関連のスタイリングの基本テクニックを紹介します。
リストマーカーを確実に表示する
リセットスタイルで、ul要素やol要素のマージンやパディングを0に設定している場合リストマーカーが表示されないことがあります。これはリストマーカーが消えているわけではなく、ボックスの外側に飛び出しているために起こる現象です。
リストの左側の余白は、IE 6やIE 7では左マージンで制御されているのに対し、Firefox 3やSafari 3、IE 8などのブラウザでは左パディングで制御されているといった実装の違いがあります。そのため、「margin-left: 0」とすると、IE 6や IE 7でマーカーが表示されませんし、「padding-left: 0」とすると、Firefox 3やSafari 3、IE 8などでマーカーが表示されなくなります。


リストマーカーが確実に表示されるように左側余白のスペースを調整するには、左マージンと左パディングの両方の値を指定します。ul要素の場合、マーカーを表示するには、最低限1emのスペースが必要ですから、margin-leftの値に1em以上を指定し、padding-leftの値に0を指定します。ol要素の場合には、「桁数+1em」のスペースを確保すると良いでしょう。例えば、「5.」のようにマーカーが1桁の場合には、2em分のスペースが必要になりますから、margin-leftの値に2em以上を指定し、padding-leftの値に0を指定します。
ul {
margin: 0 0 0 1em; /* 左マージンのみ1em */
padding: 0; /* 左パディングを含め、すべて0 */
}
ol {
margin: 0 0 0 2em; /* 左マージンのみ2em */
padding: 0; /* 左パディングを含め、すべて0 */
}

マーカーを画像で表示する
list-style-imageプロパティでは、リストマーカーとして使用する画像を指定することができますが、このプロパティを使用して細かな位置調整を行うのは難しく、リスト項目のフォントサイズや行の高さによっては、マーカーの位置がずれてしまうことがあります。この場合、画像側の幅や高さなどを変更しながら位置調整を行うことになり、あまりスマートな方法とは言えません。

このようなアイコン的な表現をしたい場合には、backgroundプロパティを利用して、背景としてマーカー画像を指定するという方法があります。具体的にはまず、「list-style-type: none」と指定して、デフォルトで表示されるマーカー(disc)を表示しないようにリセットします。次にbackgroundプロパティで、li要素の背景としてマーカー画像を指定し、左に一度だけ表示するよう指定します。さらに、リスト項目とマーカー画像が重ならないよう、padding-leftプロパティを指定してマーカー画像の表示スペースを確保します。この方法であればピクセル単位での微妙な位置調整も可能になります。
ul li {
list-style-type: none; /* リストマーカーを表示しない */
background: url("arrow.gif") no-repeat left center; /* マーカー画像を左から0%、上から50%の位置に、一度だけ表示 */
padding-left: 15px; /* マーカー画像の表示スペースを確保 */
}

この記事は参考になりましたか?
- クロスブラウザなレイアウトデザインテクニック連載記事一覧
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 宮本麻矢(ミヤモト マヤ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
