導入:なぜリストマーカーのカスタマイズが重要なのか
Webサイトのデザインにおいて、ulタグのリストマーカー(黒点)はデフォルトのままでは味気ないことが多いです。ブランドカラーに変えたり、サイズを調整したりしたいという要望は頻繁にあります。かつて、Firefoxにおいてこのマーカーを直接操作するために使われていたのが「::-moz-list-bullet」という擬似要素です。本記事では、この擬似要素の仕組みと、現代のWeb開発において採用すべき「正しいアプローチ」を解説します。
基礎知識:::-moz-list-bulletとは
::-moz-list-bulletは、Mozilla(Firefox)が独自に実装していた擬似要素で、リスト項目(li)のマーカー部分のみを対象としてスタイルを適用できる機能でした。しかし、これは非標準(ベンダー拡張)の機能であり、他のブラウザでは一切動作しません。また、現在はより汎用的な「::marker」という標準仕様が登場したため、古いブラウザ対応が必要なケースを除き、積極的に使うべき機能ではありません。
実装と解決策:::markerを使った現代的な手法
現在のWebデザインでは、標準仕様である「::marker」を使用するのが最適解です。これにより、ブラウザの垣根を越えてリストマーカーの色やフォントサイズ、内容を自由に制御できます。
サンプルプログラム:::markerによる実装例
以下のコードは、リストのマーカーを青色にし、サイズを大きくして強調するサンプルです。そのままCSSファイルにコピーして動作を確認してみてください。
- リスト項目 1
- リスト項目 2
- リスト項目 3
応用・注意点:現場で陥りやすい罠
現場での実装において、以下の点に注意してください。
1. ブラウザの互換性
::-moz-list-bulletは、今後突然廃止されても文句が言えない非標準機能です。本番環境では必ず「::marker」を使用してください。もしIEなど極端に古いブラウザの対応が必要な場合は、::markerをあえて使わず、list-styleをnoneにして、li要素に「background-image」や「::before」擬似要素でアイコンを配置する手法が最も堅実です。
2. ::markerで制御できるプロパティの制限
::markerには制限があり、全てのCSSプロパティが効くわけではありません。主に使用できるのは「color」「font-size」「content」など、文字に関連するプロパティに限定されます。もしマーカーの配置位置を細かく調整したい場合は、無理に::markerを使わず、li要素のpaddingやbackground-positionで制御する方が、レイアウト崩れを防ぐ近道となります。
正しい標準仕様を理解し、保守性の高いコードを書くことが、シニアデザイナーとして最も重要なスキルの一つです。ぜひ、既存のプロジェクトでも::markerへの置き換えを検討してみてください。

コメント