Skip to content
This page has been auto-translated and may contain errors.View in English

リスト

docs.scrimba.com

Webページの驚くほど多くの部分が実はリストです。ナビゲーションメニュー、検索結果、商品グリッド、レシピの材料、パスワードをリセットする手順。コンテンツが関連アイテムのセットである場合はいつでも、HTMLにはそのことを示す要素があり、それを使うことはブラウザと支援ソフトウェアを使用している人が、それらのアイテムが一緒に属していることを知ることを意味します。

順序なしリスト

アイテムの順序が重要でない場合、**順序なしリスト**を使用します。買い物リストを考えてください。牛乳、パン、卵。どちらを最初に書いても構いません。これらはグループ化された多くのものです。

2つのタグで構築します。<ul>タグはリスト全体をラップし、各アイテムは独自の<li>タグ(「リストアイテム」)の内側に入ります。

html
<ul>
  <li>牛乳</li>
  <li>パン</li>
  <li>卵</li>
</ul>

ブラウザはそれぞれのアイテムを独自の行に表示し、その前に箇条書き記号を付けます。あなた自身が箇条書きや改行を追加したのではなく、ブラウザがそれをします。これはあなたがそれがリストであることをそれに伝えたからです。

順序なしリストは、シーケンスが意味を持たないアイテムのグループです。<ul>要素はコンテナであり、すべての直接の子は1つのアイテムを保持する<li>要素です。

html
<ul>
  <li>£40を超える送料無料</li>
  <li>30日以内に返品可能</li>
  <li>2年間の保証</li>
</ul>

気に留めておくべき1つのルールがあります。<ul>の直接の子として許可されているのは<li>だけです。<p><div>を直接<ul>の内側に置くことはできません。アイテムにパラグラフやリンクが必要な場合、それは<li>内に入ります。<li>は任意のコンテンツを保持できます。

箇条書き記号とインデントはデフォルトのブラウザスタイリングであり、意味の一部ではありません。CSSに到達するときに、それらを自由に変更または削除し、リストは下のままリストです。

順序なしリストは、シーケンスが重要でないアイテムのセットをマークします。<ul>がコンテナであり、各アイテムは<li>です。<ul>の直接の子として許可されているのは<li>要素のみ(および<template>のようなスクリプト支援要素)なので、<ul>とそのアイテムの間にベアの<div>を置くことは無効であり、パーサーはそれをリストの一部として処理しません。

html
<ul>
  <li>£40を超える送料無料</li>
  <li>30日以内に返品可能</li>
  <li>2年間の保証</li>
</ul>

箇条書き記号とインデントはブラウザの組み込みスタイルシートからのプレゼンテーション的なデフォルトであり、セマンティクスではありません。list-style: noneはそれらを削除しますが、要素が意味する内容は変わりません。その分割が重要です。なぜなら意味は要素に存在し、箇条書き記号はただのペイントです。支援ソフトウェア(スクリーンリーダーなどのツール、それはそれが見ることができない人のためにページを大声で話す傘の用語)は、マーカーではなく、構造を読みます。それはリストが始まっていること、そしてそれが何個のアイテムを保持しているかを発表します。ネストについてのDeep Diveでその発表があなたに何をもたらすかに戻ります。

Juno順序なしリスト 順序が重要でないリストに<ul>を使用し、各アイテムを独自の<li>でラップします。ブラウザは箇条書き記号と改行をあなたのために追加しますので、あなたはそれらを手で入力することはありません。それを信頼するのに時間がかかりました。私はドットを自分で追加したいと思い続けていました。
Juno順序なしリスト<ul>はコンテナであり、その直接の子は<li>アイテムのみです。リンク、パラグラフのような何か豊かなものは<li>の内側に入り、<ul>内で緩くなることはありません。箇条書き記号はデフォルトスタイリングであり、後で変更できるため、見た目ではなく意味について要素を選択します。
Juno順序なしリスト<ul>は直接の子として<li>のみを受け取るため、そこにあるはぐれた<div>は無効なマークアップです。箇条書き記号はセマンティクスではなくブラウザスタイルシートからのものなので、list-style: noneはドットを削除してリストを保ちます。その区別は、CSSがマーカーを隠した後も、スクリーンリーダーがアイテムをカウントできる全体の理由です。

順序付きリストとその属性

時々、順序は重要です。レシピのステップ、レース内の位置、次々と従う指示。そのためには**順序付きリスト**を使用します。これはアイテムに番号を付けます。

それはまったく順序なしリストのように機能しますが、コンテナは<ul>の代わりに<ol>です。

html
<ol>
  <li>オーブンを180℃に予熱する</li>
  <li>小麦粉と砂糖を混ぜる</li>
  <li>缶に注ぎ、25分焼く</li>
</ol>

これでブラウザはアイテムの前に箇条書き記号の代わりに1、2、3を配置します。後で中央に新しいステップを追加する場合、番号は自分自身を再度番号付けします。数字を入力することはありません。これが<ol>を使用する意味です。

順序付きリストは、シーケンスが意味を持つアイテム用です。<ul>と同じ構造で、コンテナを<ol>に交換し、ブラウザが各<li>に自動的に番号を付けます。番号が生成されるため、アイテムを挿入または削除すると、残りは自動的に番号が付け直されます。

<ol>は知る価値がある3つの属性を持っています。startはリストが開始される番号を設定します。

html
<ol start="4">
  <li>卵をかき混ぜる</li>
  <li>小麦粉を折り込む</li>
</ol>

そのリストは4、5を実行します。他のコンテンツがそれを2つに分割した後、リストが続く場合に便利です。

typeは番号付けスタイルを変更します。1は数字(デフォルト)、Aまたはaは文字、Iまたはiはローマ数字。

html
<ol type="a">
  <li>証拠を集める</li>
  <li>概要を書く</li>
</ol>

そのリストは1、2の代わりにa、bを実行します。そしてreversedは下にカウントダウンします。これはカウントダウンまたはトップファイブランキングが下から上へ読まれるのに適しています。

html
<ol reversed>
  <li>ブロンズ</li>
  <li>シルバー</li>
  <li>ゴールド</li>
</ol>

順序付きリストはシーケンスが意味のあるアイテムをマークします。<ol>は生成された値から各<li>に番号を付けるため、序数はあなたが入力するコンテンツではなく、アイテムが移動するときに正しく保たれます。

3つの属性が番号付けを制御します。startは最初の序数を表示スタイルに関係なく整数として設定するため、ローマ数字リストでstart="4"はivで開始します。typeはマーカースタイルを設定します。1AaI、またはireversed(ブール属性、つまりその存在だけが値であり、設定するものは何もない)はアイテムカウントから1までカウントダウンします。

html
<ol type="I" start="4" reversed>
  <li>基礎</li>
  <li>ロールアウト</li>
  <li>レビュー</li>
</ol>

スタイリングが隠すことができる区別があります。typeはマーカーがどのように描画されるかのみを変更しますは支援ソフトウェアに発表され、startで使用されるのは常に基礎となる整数です。したがって、文字でスタイル設定されたリストはまだ下の位置1、2、3です。序数がコンテンツ自体の一部である場合、引用のために番号付けされた法的条項は、テキストにハードコーディングするのではなく、<ol>に番号を所有させることを好みます。なぜなら、<li>内にハードコーディングされた"3."は番号が付け直されず、スクリーンリーダーは2回読みます。生成されたマーカーとしての1回、テキストとしての1回。知る価値がある1つのコントロール:個別の<li>value属性はそのアイテムの番号をオーバーライドし、リストはそこからカウントを続けます。

Juno順序付きリストとその属性 レシピのステップのように順序が重要な場合は<ol>に到達し、ブラウザはアイテムに番号を付けます。ステップを追加または削除すると、番号は自分自身を修正しますので、1.または2.を手で入力することはありません。前と同じ<li>アイテムで、異なるコンテナのみ。
Juno順序付きリストとその属性<ol>は3つの便利な属性を提供します。startは1以外の番号から開始し、typeは数字の代わりに文字またはローマ数字を使い、reversedは下にカウントダウンします。それらはすべてブラウザが番号を生成することを許可しており、それは最初の場所で順序付きリストを使用する理由です。
Juno順序付きリストとその属性typeはマーカーのみを再スタイル化します。その背後にある値、startが使用する値、および支援技術が読む値は常に整数です。したがって、<li>に"3."を手書きしないでください。そうしないと、番号が付け直されず、スクリーンリーダーは数字を2回言います。<ol>にカウントを所有させ、1つのアイテムを微調整する必要がある場合は、単一の<li>valueを使用します。

説明リスト

各アイテムが本当にペアである場合のための3番目の種類のリストがあります。単語とその意味、ラベルとその値。用語集は最も明確な例であり、各用語の後にそれが意味することが続きます。

これは**説明リスト**であり、3つのタグを使用します。<dl>は全体をラップし、<dt>は各用語を保持し、<dd>はそれに伴う説明を保持します。

html
<dl>
  <dt>HTML</dt>
  <dd>ページの構造を説明する言語。</dd>
  <dt>CSS</dt>
  <dd>ページの見た目を説明する言語。</dd>
</dl>

ブラウザはそれぞれの説明をその用語の下でインデントして表示するため、ペアリングは一目瞭然です。「dt」を定義する言葉として、「dd」を定義として考えてください。

各アイテムが独立したものではなくペアリングである場合、説明リストは<ul>または<ol>よりも適切に適合します。これは3つの要素から構築されています。<dl>はコンテナ、<dt>は用語、<dd>はそれに関連付けられた説明です。

html
<dl>
  <dt>著者</dt>
  <dd>田中太郎</dd>
  <dt>出版日</dt>
  <dd>2024年3月14日</dd>
  <dt>読了時間</dt>
  <dd>6分</dd>
</dl>

その例は用語集を超えた2番目の大きな使用法を示しています。キー/値メタデータ、ラベルとその値のセット。グループ化は柔軟です。1つの<dt>の後に複数の<dd>要素が続く場合、用語が複数の説明を持つ場合、複数の<dt>要素が単一の<dd>を共有できます。複数の用語が同じものを意味する場合。コンテンツが本来「これとその詳細」である場合はいつでも<dl>に到達し、アイテムが単独である場合は<ul>または<ol>に到達します。

説明リストは名前を値に関連付けます。<dl>はコンテナです。<dt>は用語(名前)です。<dd>は説明(値)です。ブラウザと支援ソフトウェアが理解する構造は、グループのシーケンスであり、グループは1つ以上の<dt>要素の後に1つ以上の<dd>要素があります。

html
<dl>
  <dt>ストレージ</dt>
  <dt>容量</dt>
  <dd>256 GB SSD</dd>

  <dt>色</dt>
  <dd>グラファイト</dd>
  <dd>シルバー</dd>
</dl>

その柔軟性がポイントです。多くの用語が1つの説明を共有でき、1つの用語が多くの説明を実行できます。2つの実用的なフィットが目立ちます。最初は用語と定義コンテンツ(用語集など)です。2番目はキー/値メタデータ、仕様テーブル、または投稿の詳細のセットであり、各ラベルはその値とペアになります。<dl>は「これらは名前/値のペアです」と言っており、<div>のスタックはそうではありません。コンテンツがペアリングなしのピアのフラットリストである場合、<dl>は間違ったツールであり、<ul>が正直なツールです。

Juno説明リスト 説明リストはペアの場合です。用語とその意味。全体の周りに<dl>、各用語に<dt>、その後に続く説明に<dd>を使用します。用語集はあなたの頭に保つべき画像です。単語の後に定義、単語の後に定義。
Juno説明リスト 各アイテムがペアリング(用語とその詳細、またはラベルとその値)であり、ピアのセットではない場合は<dl>に到達します。グループ化は適合するために曲がります。1つの<dt>は複数の<dd>を取ることができ、複数の<dt>は1つの<dd>を共有できます。著者と日付のようなキー/値メタデータは、それが用語集を超えてその場所を獲得する場所です。
Juno説明リスト<dl>は名前/値のペアを意味し、仕様は<dt><dd>を辞書定義を超えて任意のラベルと値に拡大したため、メタデータは公正なゲームです。多くの用語が値を共有でき、1つの用語が多くの値を保持できます。<div>の壁はそれを表現できません。アイテムがペアリングなしのピアである場合、それは<dl>ではなく<ul>です。

リストのネスト

リストは他のリストの内側に入ることができます。メニューには「飲料」があり、その下にホットオプションとコールドオプションがあり、それぞれが独自の選択肢を持つ場合があります。1つのリストを別のリストの内側に置くことを**ネスト**と呼びます。

正しく理解する重要なこと。内側のリストはアイテムの間に浮かぶのではなく、<li>の内側に入ります。全体の<ul>(または<ol>)をそれが属するリストアイテムの内側に配置します。

html
<ul>
  <li>飲料
    <ul>
      <li>コーヒー</li>
      <li>紅茶</li>
    </ul>
  </li>
  <li>スナック</li>
</ul>

「コーヒー」と「紅茶」は「飲料」の一部なので、彼らの小さなリストは「飲料」アイテムの内側に住んでいます。ブラウザは内側のリストを少し多くインデントするため、それはそれの上のアイテムに属することがわかります。

いくつかのアイテムが別のアイテムの下に属することを示すために、リストをリストの内側にネストします。それを有効に保つルール。ネストされたリストは<li>の子であり、外側の<ul>または<ol>の直接の子ではありません。内側のリストはそれが展開するアイテムの内側に座ります。

html
<ul>
  <li>果物
    <ul>
      <li>リンゴ</li>
      <li>バナナ</li>
    </ul>
  </li>
  <li>野菜
    <ul>
      <li>ニンジン</li>
      <li>ほうれん草</li>
    </ul>
  </li>
</ul>

ネストすると、<ol><ul>の内側に、またはその逆に入れることができ、コンテンツが正直に行くのと同じくらい深くネストできます。ネストされたリストを実装した場所でほぼ確実に会う場所は、サブメニュー付きのナビゲーションメニューです。セクションのトップレベルリスト、それぞれ<li>内のページ独自のリスト。

ネスティングは階層が表現される方法です。サブリストはそれが属する<li>内に配置されます。外側の<ul>または<ol>の直接の子としてではなく。それを間違っている(別の<ul>の直接内側にある<ul>)は無効であり、パーサーの復旧は画像に一致することが保証されていません。

ネスティングはまた、インデントを見ることができない人々にとって構造が報酬を与える場所でもあります。スクリーンリーダーは、各レベルに入るときにリストを発表し、そのアイテムカウント、およびネスティングの深さ。「リスト、3つのアイテム」、次にサブリスト「リスト、2つのアイテム」で、移動した時期を伝えます。その実行中の解説は、非視覚的には、あなたの目が無料で読むインデントと同等であり、ネスティングが間隔で押されたアイテムではなく実際のマークアップである場合にのみ存在します。

これは、リストの誠実さのテストにつながります。ナビゲーションメニュー(訪問者をページ間で移動する一連のリンク、ほとんどのサイトの上部の行)は本当に目的地のリストなので、セマンティクス的に正しいマークアップはリンク外の<ul>であり、通常はナビゲーション領域としてラベル付けされる<nav>要素の内側にあります。コンテンツが関連アイテムのセットである場合は、CSSが後で何を見ているかに関係なく、実際のリストを使用します。それが違う場合は使用しないでください。<li>でラップしてリスト間隔を借りることで、関連性のないブロック間のギャップを偽造することは、支援ソフトウェアに「これら3つのもの3つのグループである」と伝えます。これらは不可ではありません。マーカーは非表示にでき、レイアウトは何でもあり得ます。<ul><ol>、または<dl>の選択は常にコンテンツが正直に何であるかに答えるべきです。

Junoリストのネスト リストをリストの内側に置くには、内側のリストをそれが属する<li>の内側にドロップし、アイテム間で緩くなりません。ブラウザはそれをインデントするため、それはアイテムの上の一部であることがわかります。その内側の<li>ルールはここで覚えるべき1つのことです。
Junoリストのネスト ネストされたリストは常に<li>の子であり、外側の<ul>または<ol>の直接の子ではありません。<ol><ul>の内側に入れ、コンテンツが本当にあるのと同じくらい深くすることができます。サブメニュー付きのナビゲーションメニューは、ここで最もこれに当たる場所なので、今それに快適になる価値があります。
Junoリストのネスト サブリストを<li>の内側に置きます。なぜなら、スクリーンリーダーはアイテムカウントとネスティングの深さを読み出し、その話された構造は見ることができない誰かにとってインデントを置き換えるものです。navメニューは本当にリンクのリストなので、それを1つとしてマークします。関連性のないブロックを<li>でラップしてスペーシングを借ります。要素が正直にコンテンツが何であるかを言わせ、その後で好きなようにスタイル。