まず結論(1行)
ul(順不同)とol(順序あり)でリストの骨組みを作り、項目は必ずliで書けるようになります。
最小の書き方(コピペで動く最小コード)
HTMLCode
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>List Minimum</title>
</head>
<body>
<ul>
<li>りんご</li>
<li>バナナ</li>
<li>みかん</li>
</ul>
</body>
</html>
Previewdesktop
HTMLCode
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>List Minimum</title>
</head>
<body>
<ul>
<li>りんご</li>
<li>バナナ</li>
<li>みかん</li>
</ul>
</body>
</html>
Preview を表示
重要ポイント(ここで迷いがち)
- ul = unordered list(順番が重要じゃない)
例:持ち物、特徴、メニューなど - ol = ordered list(順番が重要)
例:手順、ランキング、手続きの流れ - liは「リスト項目」専用
liは必ずulかol(または後述のmenu)の中に置く。 - リストの中に“別のリスト”を入れられる(入れ子)
ただし「入れ子のul/olは、親のliの中」に入れるのが基本。
例で理解(よく使うパターン 4つ)
1) 仕様・特徴の箇条書き(ul)
HTMLCode
<ul>
<li>予約不要</li>
<li>持ち物はタオルだけ</li>
<li>雨天でも開催</li>
</ul>
Previewdesktop
HTMLCode
<ul>
<li>予約不要</li>
<li>持ち物はタオルだけ</li>
<li>雨天でも開催</li>
</ul>
Preview を表示
2) 手順を書く(ol)
HTMLCode
<ol>
<li>フォームを開く</li>
<li>必要事項を入力</li>
<li>送信して完了</li>
</ol>
Previewdesktop
HTMLCode
<ol>
<li>フォームを開く</li>
<li>必要事項を入力</li>
<li>送信して完了</li>
</ol>
Preview を表示
3) 入れ子(カテゴリー→項目)
HTMLCode
<ul>
<li>
飲み物
<ul>
<li>コーヒー</li>
<li>お茶</li>
</ul>
</li>
<li>
食べ物
<ul>
<li>パン</li>
<li>サラダ</li>
</ul>
</li>
</ul>
Previewdesktop
HTMLCode
<ul>
<li>
飲み物
<ul>
<li>コーヒー</li>
<li>お茶</li>
</ul>
</li>
<li>
食べ物
<ul>
<li>パン</li>
<li>サラダ</li>
</ul>
</li>
</ul>
Preview を表示
4) 手順の中に注意点を入れる(olの中にul)
HTMLCode
<ol>
<li>
申し込み前に確認
<ul>
<li>メール受信設定</li>
<li>入力内容の控え</li>
</ul>
</li>
<li>申し込む</li>
</ol>
Previewdesktop
HTMLCode
<ol>
<li>
申し込み前に確認
<ul>
<li>メール受信設定</li>
<li>入力内容の控え</li>
</ul>
</li>
<li>申し込む</li>
</ol>
Preview を表示
使い分け(似た要素との違い)
- pで箇条書きっぽくしない
見た目はCSSで作れても、意味としては段落のまま。読み上げや検索にも弱い。 - br連打で“なんちゃってリスト”にしない
構造が壊れて、編集・保守・アクセシビリティが悪化。 - ナビはnav + ul/li/aが基本(#12で詳しく)
メニューも“リスト”として表現すると意味が通る。
実務のコツ(SEO/安全/アクセシビリティ)
- 読み上げ(スクリーンリーダー)はリストを理解できる
「〇件のリスト」→「1つ目…」のように案内され、情報が伝わりやすい。 - 入れ子は深くしすぎない(2段くらいまでが無難)
深すぎると読みづらく、スマホでも操作しづらい。 - リストは“同じ種類の項目”を並べる
例:機能一覧、注意点一覧、ステップ一覧。混ぜると理解が落ちる。
NG・禁止例(事故る書き方)
NG1)liを単体で置く(親がない)
HTMLCode
<li>これはNG</li>
Previewdesktop
HTMLCode
<li>これはNG</li>
Preview を表示
✅ 正:ulかolの中に入れる
HTMLCode
<ul><li>OK</li></ul>
Previewdesktop
HTMLCode
<ul><li>OK</li></ul>
Preview を表示
NG2)ulの直下にテキストを置く(li以外が混ざる)
HTMLCode
<ul>
りんご
<li>バナナ</li>
</ul>
Previewdesktop
HTMLCode
<ul>
りんご
<li>バナナ</li>
</ul>
Preview を表示
✅ 正:全部liにする
HTMLCode
<ul>
<li>りんご</li>
<li>バナナ</li>
</ul>
Previewdesktop
HTMLCode
<ul>
<li>りんご</li>
<li>バナナ</li>
</ul>
Preview を表示
NG3)入れ子リストをliの外に置く
HTMLCode
<ul>
<li>飲み物</li>
<ul><li>コーヒー</li></ul>
</ul>
Previewdesktop
HTMLCode
<ul>
<li>飲み物</li>
<ul><li>コーヒー</li></ul>
</ul>
Preview を表示
✅ 正:入れ子は親liの中
HTMLCode
<ul>
<li>
飲み物
<ul><li>コーヒー</li></ul>
</li>
</ul>
Previewdesktop
HTMLCode
<ul>
<li>
飲み物
<ul><li>コーヒー</li></ul>
</li>
</ul>
Preview を表示
NG4)olで順番が意味ない内容を書く
例:持ち物一覧をolにする → 「順番が意味あり」に誤解されやすい
✅ 正:順番が不要ならul
見た目を整える(HTML+CSSセット:4例)
色は使わず、線・余白・影・アニメで整えます。
例1)余白と行間で読みやすく
例1)余白と行間で読みやすく
HTMLCode
<ul class="list-basic">
<li>予約不要</li>
<li>持ち物はタオルだけ</li>
<li>雨天でも開催</li>
</ul>CSSCode
.list-basic {
padding-left: 1.25rem;
line-height: 1.9;
}
.list-basic li {
margin: 0.4rem 0;
}Previewdesktop
HTMLCode
<ul class="list-basic">
<li>予約不要</li>
<li>持ち物はタオルだけ</li>
<li>雨天でも開催</li>
</ul>CSSCode
.list-basic {
padding-left: 1.25rem;
line-height: 1.9;
}
.list-basic li {
margin: 0.4rem 0;
}Preview を表示
例2)点(・)を消して“カード風”
例2)点(・)を消して“カード風”
HTMLCode
<ul class="list-card">
<li>受付は10:00から</li>
<li>開始5分前に集合</li>
<li>終了後にアンケート</li>
</ul>CSSCode
.list-card {
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: 0.6rem;
}
.list-card li {
padding: 0.8rem 0.9rem;
border: 1px solid currentColor;
border-radius: 14px;
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
}Previewdesktop
HTMLCode
<ul class="list-card">
<li>受付は10:00から</li>
<li>開始5分前に集合</li>
<li>終了後にアンケート</li>
</ul>CSSCode
.list-card {
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: 0.6rem;
}
.list-card li {
padding: 0.8rem 0.9rem;
border: 1px solid currentColor;
border-radius: 14px;
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
}Preview を表示
例3)チェックっぽい見た目(疑似要素)
例3)チェックっぽい見た目(疑似要素)
HTMLCode
<ul class="list-check">
<li>メールアドレスを確認</li>
<li>入力漏れがないか確認</li>
<li>送信後の自動返信を確認</li>
</ul>CSSCode
.list-check {
list-style: none;
padding: 0;
margin: 0;
}
.list-check li {
display: flex;
gap: 0.6rem;
align-items: flex-start;
padding: 0.6rem 0;
border-bottom: 1px solid rgba(0, 0, 0, 0.15);
}
.list-check li::before {
content: "✓";
transform: translateY(0.05rem);
opacity: 0.8;
}Previewdesktop
HTMLCode
<ul class="list-check">
<li>メールアドレスを確認</li>
<li>入力漏れがないか確認</li>
<li>送信後の自動返信を確認</li>
</ul>CSSCode
.list-check {
list-style: none;
padding: 0;
margin: 0;
}
.list-check li {
display: flex;
gap: 0.6rem;
align-items: flex-start;
padding: 0.6rem 0;
border-bottom: 1px solid rgba(0, 0, 0, 0.15);
}
.list-check li::before {
content: "✓";
transform: translateY(0.05rem);
opacity: 0.8;
}Preview を表示
例4)手順を“ステップ”っぽく(ol)
例4)手順を“ステップ”っぽく(ol)
HTMLCode
<ol class="steps">
<li>フォームを開く</li>
<li>必要事項を入力</li>
<li>送信して完了</li>
</ol>CSSCode
.steps {
counter-reset: step;
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: 0.6rem;
}
.steps li {
counter-increment: step;
padding: 0.8rem 0.9rem;
border: 1px solid currentColor;
border-radius: 14px;
position: relative;
}
.steps li::before {
content: counter(step);
position: absolute;
top: 0.6rem;
right: 0.75rem;
opacity: 0.6;
font-size: 0.95rem;
}Previewdesktop
HTMLCode
<ol class="steps">
<li>フォームを開く</li>
<li>必要事項を入力</li>
<li>送信して完了</li>
</ol>CSSCode
.steps {
counter-reset: step;
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: 0.6rem;
}
.steps li {
counter-increment: step;
padding: 0.8rem 0.9rem;
border: 1px solid currentColor;
border-radius: 14px;
position: relative;
}
.steps li::before {
content: counter(step);
position: absolute;
top: 0.6rem;
right: 0.75rem;
opacity: 0.6;
font-size: 0.95rem;
}Preview を表示
理解チェック(3問・答え付き)
持ち物リストはulとolどっち?
→ ul(順番が重要じゃない)
liはどこに置ける?
→ ulかolの中(親が必要)
入れ子のulはどこに入れるのが基本?
→ 親のliの中(項目の一部として扱う)
ミニ演習(すぐ試せる小課題 2つ)
- 「今日やること」をolで3ステップ書いてみてください。
さらに「1つ目の手順の注意点」を入れ子ulで2個追加。 - 「購入前チェック」をulで5項目作り、CSS例3(チェック風)を当てて見た目を整えてください。