リストは、箇条書き、手順、特徴、注意点、ランキング、メニューなど、Webサイトのあちこちで使います。
ただ、初期状態の ul や ol のままだと、余白が合わなかったり、少し地味に見えたりします。
この記事では、CSSで使いやすいリストデザインを20個まとめました。HTMLとCSSをそのままコピーして、色や余白だけ調整して使える形にしています。
1. 基本の読みやすいリスト
まずは、行間と余白だけを整える基本形です。本文中の箇条書きに向いています。
<ul class="list-basic">
<li>文章を短く区切る</li>
<li>同じ種類の情報を並べる</li>
<li>読みやすい余白を入れる</li>
</ul>
.list-basic {
padding-left: 1.4em;
line-height: 1.9;
}
.list-basic li + li {
margin-top: 6px;
}
迷ったら、この形から始めると失敗しにくいです。
2. チェックマークのリスト
メリット、対応内容、完了条件などにはチェックリストが合います。
<ul class="list-check">
<li>スマホでも読みやすい</li>
<li>コピペで使いやすい</li>
<li>色を変更しやすい</li>
</ul>
.list-check {
padding: 0;
list-style: none;
}
.list-check li {
position: relative;
padding-left: 30px;
line-height: 1.8;
}
.list-check li + li {
margin-top: 10px;
}
.list-check li::before {
position: absolute;
top: 0;
left: 0;
color: #16a34a;
font-weight: 700;
content: "✓";
}
list-style: none; で標準の点を消し、::before でチェックを追加します。
3. 丸アイコンのチェックリスト
チェックマークを丸の中に入れると、サービス紹介や機能一覧で目立ちます。
<ul class="list-check-circle">
<li>初期設定を済ませる</li>
<li>必要な項目を入力する</li>
<li>公開前に表示を確認する</li>
</ul>
.list-check-circle {
padding: 0;
list-style: none;
}
.list-check-circle li {
position: relative;
padding-left: 38px;
line-height: 1.8;
}
.list-check-circle li + li {
margin-top: 12px;
}
.list-check-circle li::before {
position: absolute;
top: 4px;
left: 0;
display: grid;
place-items: center;
width: 24px;
height: 24px;
color: #fff;
font-size: 13px;
font-weight: 700;
content: "✓";
background: #2563eb;
border-radius: 50%;
}
アイコンの高さがずれる場合は、top の値を少し調整します。
4. 矢印アイコンのリスト
リンク一覧や「次に読む項目」には矢印のリストが使いやすいです。
<ul class="list-arrow">
<li><a href="#">料金プランを見る</a></li>
<li><a href="#">導入事例を見る</a></li>
<li><a href="#">よくある質問を見る</a></li>
</ul>
.list-arrow {
padding: 0;
list-style: none;
}
.list-arrow li + li {
margin-top: 10px;
}
.list-arrow a {
position: relative;
display: inline-block;
padding-left: 20px;
color: #1d4ed8;
text-decoration: none;
}
.list-arrow a::before {
position: absolute;
left: 0;
content: "›";
}
.list-arrow a:hover {
text-decoration: underline;
}
リンクのリストでは、ホバー時に下線を出すとクリックできることが伝わりやすくなります。
5. 下線区切りのリスト
ニュース、更新履歴、お知らせのように、項目ごとに区切りたい場合の形です。
<ul class="list-border">
<li>2026.07.08 新しい記事を公開しました</li>
<li>2026.07.01 CSS記事を更新しました</li>
<li>2026.06.25 サンプルを追加しました</li>
</ul>
.list-border {
padding: 0;
border-top: 1px solid #e5e7eb;
list-style: none;
}
.list-border li {
padding: 14px 0;
line-height: 1.7;
border-bottom: 1px solid #e5e7eb;
}
余白を上下に入れるだけで、一覧として読みやすくなります。
6. 背景つきのカードリスト
注意点やポイントを、少し目立たせたいときのリストです。
<ul class="list-card">
<li>余白を詰めすぎない</li>
<li>色を増やしすぎない</li>
<li>スマホ表示も確認する</li>
</ul>
.list-card {
display: grid;
gap: 12px;
padding: 0;
list-style: none;
}
.list-card li {
padding: 16px;
line-height: 1.7;
background: #f8fafc;
border: 1px solid #e2e8f0;
border-radius: 8px;
}
カードをもっと作り込みたい場合は、CSSカードデザイン集 も参考にしてください。
7. 番号付きの基本ステップリスト
手順を説明するときは、意味としても ol を使うのが自然です。
<ol class="list-step-basic">
<li>HTMLを書く</li>
<li>CSSを追加する</li>
<li>ブラウザで確認する</li>
</ol>
.list-step-basic {
padding-left: 1.4em;
line-height: 1.8;
}
.list-step-basic li + li {
margin-top: 10px;
}
数字の装飾が不要なら、標準の番号を活かすだけでも十分読みやすくできます。
8. 丸番号のステップリスト
番号を丸く装飾すると、作業手順や登録フローに使いやすくなります。
<ol class="list-step-circle">
<li>アカウントを作成する</li>
<li>プロフィールを入力する</li>
<li>公開ボタンを押す</li>
</ol>
.list-step-circle {
padding: 0;
list-style: none;
counter-reset: step;
}
.list-step-circle li {
position: relative;
padding-left: 44px;
line-height: 1.8;
}
.list-step-circle li + li {
margin-top: 14px;
}
.list-step-circle li::before {
position: absolute;
top: 2px;
left: 0;
display: grid;
place-items: center;
width: 30px;
height: 30px;
color: #fff;
font-size: 14px;
font-weight: 700;
content: counter(step);
counter-increment: step;
background: #0f766e;
border-radius: 50%;
}
counter-reset と counter-increment を使うと、HTMLに番号を書かずに装飾できます。
9. カード型のステップリスト
1ステップごとに説明文を入れたいときは、カード型にすると読みやすいです。
<ol class="list-step-card">
<li>
<strong>準備する</strong>
<span>必要な素材と文章をそろえます。</span>
</li>
<li>
<strong>作成する</strong>
<span>HTMLとCSSを追加します。</span>
</li>
<li>
<strong>確認する</strong>
<span>スマホとPCで表示を確認します。</span>
</li>
</ol>
.list-step-card {
display: grid;
gap: 14px;
padding: 0;
list-style: none;
counter-reset: step;
}
.list-step-card li {
position: relative;
padding: 18px 18px 18px 64px;
background: #fff;
border: 1px solid #dbeafe;
border-radius: 8px;
}
.list-step-card li::before {
position: absolute;
top: 18px;
left: 18px;
display: grid;
place-items: center;
width: 32px;
height: 32px;
color: #1d4ed8;
font-weight: 700;
content: counter(step);
counter-increment: step;
background: #dbeafe;
border-radius: 50%;
}
.list-step-card strong,
.list-step-card span {
display: block;
}
.list-step-card span {
margin-top: 4px;
color: #64748b;
line-height: 1.7;
}
タイトルと説明文を分けると、手順の意味がすぐ伝わります。
10. 横並びタグリスト
カテゴリ、タグ、使用技術などを並べるときの定番です。
<ul class="list-tags">
<li>HTML</li>
<li>CSS</li>
<li>WordPress</li>
<li>SEO</li>
</ul>
.list-tags {
display: flex;
flex-wrap: wrap;
gap: 8px;
padding: 0;
list-style: none;
}
.list-tags li {
padding: 5px 12px;
color: #334155;
font-size: 14px;
background: #f1f5f9;
border-radius: 9999px;
}
バッジやラベルの種類を増やしたい場合は、CSSバッジ・ラベル・タグデザイン集 に分けると記事同士の重複を避けられます。
11. 横並びメニューリスト
ヘッダーやフッターのメニューは、ul を横並びにして作ることが多いです。
<ul class="list-menu">
<li><a href="#">ホーム</a></li>
<li><a href="#">サービス</a></li>
<li><a href="#">会社情報</a></li>
<li><a href="#">お問い合わせ</a></li>
</ul>
.list-menu {
display: flex;
flex-wrap: wrap;
gap: 6px 18px;
padding: 0;
list-style: none;
}
.list-menu a {
color: #111827;
font-weight: 700;
text-decoration: none;
}
.list-menu a:hover {
color: #2563eb;
}
本格的なヘッダーは、CSSヘッダーデザイン集 で扱うとよいです。
12. 2列に並べるリスト
特徴や対応範囲が多いときは、PCで2列にすると視線移動が少なくなります。
<ul class="list-two-column">
<li>トップページ制作</li>
<li>下層ページ制作</li>
<li>フォーム設置</li>
<li>スマホ対応</li>
<li>表示速度改善</li>
<li>更新サポート</li>
</ul>
.list-two-column {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px 24px;
padding-left: 1.2em;
line-height: 1.7;
}
@media (max-width: 600px) {
.list-two-column {
grid-template-columns: 1fr;
}
}
列数を変えたい場合は、CSS Gridの記事に分けて深掘りできます。
13. タイムライン風リスト
制作の流れ、経歴、更新履歴などは、縦線を入れると時系列に見えます。
<ol class="list-timeline">
<li>
<span>STEP 1</span>
<strong>お問い合わせ</strong>
</li>
<li>
<span>STEP 2</span>
<strong>ヒアリング</strong>
</li>
<li>
<span>STEP 3</span>
<strong>ご提案</strong>
</li>
</ol>
.list-timeline {
position: relative;
padding: 0 0 0 28px;
list-style: none;
}
.list-timeline::before {
position: absolute;
top: 8px;
bottom: 8px;
left: 7px;
width: 2px;
content: "";
background: #cbd5e1;
}
.list-timeline li {
position: relative;
padding-bottom: 22px;
}
.list-timeline li::before {
position: absolute;
top: 6px;
left: -28px;
width: 16px;
height: 16px;
content: "";
background: #2563eb;
border: 3px solid #fff;
border-radius: 50%;
box-shadow: 0 0 0 1px #2563eb;
}
.list-timeline span {
display: block;
color: #2563eb;
font-size: 12px;
font-weight: 700;
}
.list-timeline strong {
display: block;
margin-top: 3px;
}
縦線と点は疑似要素で作るため、HTMLはシンプルに保てます。
14. ランキングリスト
人気記事、売れ筋商品、よく読まれているページにはランキング形式が便利です。
<ol class="list-ranking">
<li><a href="#">CSSボタンデザイン集</a></li>
<li><a href="#">CSSカードデザイン集</a></li>
<li><a href="#">CSS見出しデザイン集</a></li>
</ol>
.list-ranking {
padding: 0;
list-style: none;
counter-reset: ranking;
}
.list-ranking li {
display: flex;
gap: 12px;
align-items: center;
padding: 12px 0;
border-bottom: 1px solid #e5e7eb;
}
.list-ranking li::before {
display: grid;
flex: 0 0 30px;
place-items: center;
width: 30px;
height: 30px;
color: #fff;
font-size: 14px;
font-weight: 700;
content: counter(ranking);
counter-increment: ranking;
background: #f59e0b;
border-radius: 50%;
}
.list-ranking a {
color: #111827;
text-decoration: none;
}
順位をHTMLに直書きしないので、並び替えたときも番号の修正が不要です。
15. FAQ風のリスト
短いQ&Aを並べるだけなら、リストでも十分表現できます。
<ul class="list-faq">
<li>
<span>Q</span>
<div>
<strong>CSSだけで使えますか?</strong>
<p>はい。JavaScriptなしで使える見た目です。</p>
</div>
</li>
<li>
<span>Q</span>
<div>
<strong>色は変えられますか?</strong>
<p>背景色と文字色を変更すれば調整できます。</p>
</div>
</li>
</ul>
.list-faq {
display: grid;
gap: 14px;
padding: 0;
list-style: none;
}
.list-faq li {
display: flex;
gap: 12px;
padding: 16px;
background: #f9fafb;
border-radius: 8px;
}
.list-faq span {
display: grid;
flex: 0 0 28px;
place-items: center;
width: 28px;
height: 28px;
color: #fff;
font-weight: 700;
background: #111827;
border-radius: 50%;
}
.list-faq strong {
display: block;
}
.list-faq p {
margin: 6px 0 0;
color: #64748b;
line-height: 1.7;
}
開閉式のFAQにしたい場合は、別記事でアコーディオンとして扱うと検索意図が分かれます。
16. 定義リスト風の情報リスト
会社情報、商品情報、プロフィールなどには dl も使えます。
<dl class="list-definition">
<div>
<dt>営業時間</dt>
<dd>10:00 - 18:00</dd>
</div>
<div>
<dt>定休日</dt>
<dd>土日祝</dd>
</div>
<div>
<dt>所在地</dt>
<dd>東京都渋谷区</dd>
</div>
</dl>
.list-definition {
margin: 0;
border-top: 1px solid #e5e7eb;
}
.list-definition div {
display: grid;
grid-template-columns: 140px 1fr;
gap: 16px;
padding: 14px 0;
border-bottom: 1px solid #e5e7eb;
}
.list-definition dt {
font-weight: 700;
}
.list-definition dd {
margin: 0;
color: #475569;
}
@media (max-width: 600px) {
.list-definition div {
grid-template-columns: 1fr;
gap: 4px;
}
}
「項目名」と「内容」の組み合わせには、ul より dl が合うことがあります。
17. 階層が見やすい入れ子リスト
カテゴリの中に小項目がある場合は、入れ子リストの余白を整えます。
<ul class="list-nested">
<li>HTML
<ul>
<li>タグの使い分け</li>
<li>見出し構造</li>
</ul>
</li>
<li>CSS
<ul>
<li>レイアウト</li>
<li>装飾</li>
</ul>
</li>
</ul>
.list-nested {
padding-left: 1.2em;
line-height: 1.8;
}
.list-nested > li + li {
margin-top: 12px;
}
.list-nested ul {
margin-top: 6px;
padding-left: 1.4em;
color: #64748b;
}
.list-nested ul li + li {
margin-top: 4px;
}
入れ子が深すぎると読みにくくなるため、2階層程度に抑えるのがおすすめです。
18. ::marker で点だけ変えるリスト
標準の箇条書きを残したまま、点や番号の色だけ変える方法です。
<ul class="list-marker">
<li>HTMLの意味を保てる</li>
<li>CSSが短く済む</li>
<li>本文のリストに使いやすい</li>
</ul>
.list-marker {
padding-left: 1.4em;
line-height: 1.8;
}
.list-marker li + li {
margin-top: 8px;
}
.list-marker li::marker {
color: #2563eb;
font-size: 1.2em;
}
大きく装飾したい場合は ::before、点や番号だけ変えたい場合は ::marker が手軽です。
19. 注意書きリスト
禁止事項や注意点を並べる場合は、背景色を薄く入れると伝わりやすくなります。
<ul class="list-caution">
<li>重要な情報を色だけで伝えない</li>
<li>文字サイズを小さくしすぎない</li>
<li>スマホで折り返しを確認する</li>
</ul>
.list-caution {
display: grid;
gap: 10px;
padding: 16px;
background: #fff7ed;
border: 1px solid #fed7aa;
border-radius: 8px;
list-style: none;
}
.list-caution li {
position: relative;
padding-left: 28px;
line-height: 1.7;
}
.list-caution li::before {
position: absolute;
left: 0;
color: #ea580c;
font-weight: 700;
content: "!";
}
注意書きは目立たせすぎると読みにくいので、背景は薄めの色にします。
20. CSS変数で色を変えやすいリスト
複数ページで使い回すなら、色や余白をCSS変数にしておくと管理しやすいです。
<ul class="list-variable">
<li>色をまとめて変更できる</li>
<li>サイト全体で使い回しやすい</li>
<li>修正漏れを減らせる</li>
</ul>
.list-variable {
--list-color: #7c3aed;
--list-bg: #f5f3ff;
--list-gap: 10px;
display: grid;
gap: var(--list-gap);
padding: 0;
list-style: none;
}
.list-variable li {
position: relative;
padding: 12px 14px 12px 42px;
line-height: 1.7;
background: var(--list-bg);
border-radius: 8px;
}
.list-variable li::before {
position: absolute;
top: 14px;
left: 16px;
color: var(--list-color);
font-weight: 700;
content: "•";
}
色だけ変えたいときは、--list-color と --list-bg を変更します。
リストデザインで失敗しやすいポイント
- 文章が長いのに行間が狭く、読みづらくなる
ulやolの意味がある場所でdivだけにしてしまうlist-style: none;を指定したあと、代わりの目印を入れ忘れる- 横並びリストで
flex-wrapを入れず、スマホで崩れる - アイコンや番号をHTMLに直書きしすぎて、あとから修正しにくくなる
どのリストを選ぶとよいか
- 本文中の箇条書きには、基本リストや
::markerのリスト - メリットや対応内容には、チェックリスト
- 手順には、番号付きリストやステップカード
- タグやカテゴリには、横並びタグリスト
- 時系列には、タイムラインリスト
- 人気順や順位には、ランキングリスト
まとめ
CSSリストデザインは、まず ul、ol、dl の意味を選び、その上で見た目を整えるのが大切です。
「点だけ変える」「チェックを付ける」「番号を装飾する」「カード化する」「横並びにする」のパターンを持っておくと、ほとんどのリストに対応できます。