ul 要素は「順番を気にしない“箇条書きの箱”」
まずイメージからいきます。
<ul> は
「順番はどうでもいいけど、いくつかの項目を並べて見せたい」
ときに使う“箇条書きの箱”です。
買い物リスト
サイトのナビゲーション
特徴の一覧
こういう「番号はいらないけど、項目を並べたい」場面で登場します。
“u” は unordered(順不同)の略で、
「順番なしのリスト」という意味を持っています。
ul の基本構造と「中に入るもの」のイメージ
ul は「外側の箱」、中に「項目」が並ぶ
<ul> 自体は「リスト全体の箱」です。
その中に「各項目用の要素」が並ぶ、という構造になります。
ざっくりした形だけ書くと、こうです。
<ul>
<!-- ここに 1 つ目の項目 -->
<!-- ここに 2 つ目の項目 -->
<!-- ここに 3 つ目の項目 -->
</ul>
ブラウザは
「これは“箇条書きのまとまり”なんだな」
と理解して、先頭に黒い点(・)を付けて表示してくれます。
ここで大事なのは、
「ul は“リスト全体”を表す要素」
「中身は“リストの各項目”を表す要素が並ぶ」
という二層構造になっている、ということです。
ul が向いている場面・向いていない場面
向いているのは「順番が意味を持たない並び」
例えば、サービスの特徴を並べるとき。
「1 番目が一番大事」というわけではなく、
どれも同じレベルの特徴ですよね。
そういうときは「順不同のリスト」として <ul> がぴったりです。
逆に、「手順」のように
1 → 2 → 3 の順番に意味がある場合は、
番号付きリスト(<ol>)の方が適しています。
「順番に意味があるか?」
「ただ並べたいだけか?」
ここを自分に問いかけると、<ul> を使うかどうかの判断がしやすくなります。
ナビゲーションメニューと ul の相性
メニューの「一覧」を表現する箱として使う
サイトのヘッダーメニューは、<ul> ととても相性がいいです。
HTML のイメージ:
<nav>
<ul>
<!-- ホームへのリンク -->
<!-- サービスページへのリンク -->
<!-- お問い合わせページへのリンク -->
</ul>
</nav>
ここで <nav> は「ナビゲーション全体」、<ul> は「メニュー項目の一覧」という役割です。
CSS で横並びにすると、
よく見るグローバルナビになります。
nav ul {
display: flex;
gap: 16px;
padding: 0;
margin: 0;
}
「メニューの項目がいくつか並んでいる」
という構造を、意味付きで表現できるのが良いところです。
CSS と組み合わせた ul の見た目カスタマイズ
デフォルトの「黒い点」を消してカスタムデザインにする
ブラウザの初期状態では、<ul> の各項目の先頭に黒い点(・)が付きます。
これを消して、
自分でデザインしたいときは CSS でこうします。
ul {
list-style: none; /* 先頭の点を消す */
padding-left: 0; /* 左の余白を消す */
}
これで「素の並び」になるので、
アイコンを付けたり、
ボーダーで区切ったり、
自由にデザインできます。
例えば、カード風のリストにしたい場合:
.features {
list-style: none;
padding-left: 0;
}
.features > * {
border: 1px solid #ddd;
padding: 12px;
margin-bottom: 8px;
border-radius: 4px;
}
ここでは、
「ul 全体にクラスを付けて、
中の各項目に同じスタイルを当てる」
という使い方をしています。
JavaScript と ul:動的に「一覧」を作るときの定番
配列データからリストを生成する
JavaScript で、
配列から「一覧」を作るときにも <ul> はよく使われます。
HTML:
<ul id="todoList"></ul>
JavaScript:
const todos = ["牛乳を買う", "メールを返信する", "勉強を 30 分する"];
const list = document.querySelector("#todoList");
todos.forEach((text) => {
const item = document.createElement("div"); // 本来は各項目用の要素
item.textContent = text;
list.appendChild(item);
});
JavaScriptここでは説明の都合で「各項目用の要素」を仮に div で作っていますが、
大事なのは構造です。
<ul> が「一覧の箱」
その中に「項目」が JavaScript で追加されていく
という形になっています。
このパターンを押さえておくと、
検索結果一覧
通知一覧
コメント一覧
など、「何かのリスト」を JS で描画するときに応用できます。
ul を使うか迷ったときの考え方
「これは“箇条書き”と言えるか?」を自分に聞く
<ul> を使うかどうか迷ったら、
その部分を頭の中でこう言い換えてみてください。
「ここは“〜の一覧”と呼べるか?」
「箇条書きにしても違和感がないか?」
例えば:
サービスの特徴一覧 → ul が合う
メニューの項目一覧 → ul が合う
プロフィールの本文 → ul ではなく p や div
「一覧」「箇条書き」として自然なら <ul>。
そうでないなら、別の要素(<p>, <div>, <section> など)を検討する、
という癖をつけると、タグ選びがうまくなります。
初心者として「ul タグ」で絶対に掴んでほしいこと
<ul> は、
「順番を気にしない“箇条書きの一覧”を表す箱」です。
順番に意味があるなら番号付きリスト(<ol>)
順番に意味がないなら順不同リスト(<ul>)
ナビゲーションメニューや特徴一覧など、
「〜の一覧」と呼べるところに使うとしっくりきます。
そして、見た目の調整は CSS に任せる。<ul> 自体は「ここはリストです」という“意味”を担当する——
この役割分担を意識できるようになったら、
もう ul を“なんとなくの点付き表示”ではなく、
“情報を整理するための意味のある箱”として扱えている状態です。
