CSS で Flexbox の order プロパティを調べる

CSSCSSBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、CSS の Flexbox の order プロパティを調べます。HTML 構造を変更することなく、フレックス アイテムの視覚的な配置を動的に変更できる方法を理解することに焦点を当てます。段階的なアプローチを通じて、参加者はフレキシブルなレイアウトを作成し、個々のアイテムに order 値を適用し、これらの値が要素のレンダリングにどのように影響するかを観察することができます。

この実験では、まずコンテナと複数のフレックス アイテムを持つ基本的な HTML 構造を設定し、その後レイアウトを変換する CSS スタイルを徐々に追加します。参加者はさまざまな order プロパティ値を試してみることで、フレックス コンテナ内のアイテムの配置を精密に制御できるソート メカニズムを理解し、最終的にフレキシブルなウェブ デザイン技術の理解を深めます。

Flexbox レイアウト用の HTML 構造を設定する

このステップでは、Flexbox の order プロパティを調べるための基礎となる基本的な HTML 構造を作成する方法を学びます。order プロパティの機能を示すために、複数のフレックス アイテムを持つ単純なコンテナを設定します。

まず、WebIDE を開き、~/project ディレクトリに HTML ファイルを作成します。

  1. 「ファイル」>「新規ファイル」をクリックする
  2. ファイルを flexbox-order.html として保存する

次に、HTML 構造を作成しましょう。

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Flexbox Order Property Demo</title>
    <style>
      /* CSS スタイルは次のステップで追加します */
    </style>
  </head>
  <body>
    <div class="container">
      <div class="item item1">Item 1</div>
      <div class="item item2">Item 2</div>
      <div class="item item3">Item 3</div>
      <div class="item item4">Item 4</div>
      <div class="item item5">Item 5</div>
    </div>
  </body>
</html>

HTML 構造を分解してみましょう。

  • container クラスを持つコンテナ <div> を作成しました。
  • コンテナの中に、item クラスと個別の item1 から item5 までのクラスを持つ 5 つの <div> 要素があります。
  • この構造は、order プロパティがフレックス アイテムのレイアウトにどのように影響するかを示すのに役立ちます。

この HTML ファイルをブラウザで開いたときの例の出力は次のとおりです。

[既定のレイアウトで、元の順序で 5 つのアイテムが表示されます]
Item 1 | Item 2 | Item 3 | Item 4 | Item 5

Flex コンテナに基本的な CSS スタイルを追加する

このステップでは、基本的な CSS スタイルを適用して Flex コンテナを作成し、そのアイテムにスタイルを付ける方法を学びます。前のステップで作成した flexbox-order.html ファイルを開き、<style> セクションを変更します。

HTML ファイルの <style> タグの中に次の CSS を追加します。

.container {
  display: flex;
  width: 100%;
  background-color: #f0f0f0;
  padding: 20px;
  gap: 10px; /* Flex アイテム間に余白を作成します */
}

.item {
  width: 100px;
  height: 100px;
  background-color: #3498db;
  color: white;
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: Arial, sans-serif;
}

CSS プロパティを分解してみましょう。

  • display: flex; でコンテナを Flex コンテナにします。
  • gap: 10px; で Flex アイテム間に余白を追加します。
  • .item のスタイルは各 Flex アイテムの外見を定義します。
  • justify-content: center;align-items: center; で各アイテム内のテキストを中央に配置します。

HTML ファイルをブラウザで開いたときの例の出力は次のとおりです。

[中央に白いテキストがあり、均等に間隔を空けられた 5 つの青い四角形の列]
Item 1 | Item 2 | Item 3 | Item 4 | Item 5

理解すべき要点は次のとおりです。

  • Flex コンテナは display: flex を使用して Flexbox レイアウトを有効にします。
  • アイテムは既定で水平に配置されます。
  • 各アイテムは、視認性を高めるために固定の幅と高さを持っています。

Flex アイテムに order プロパティを適用する

このステップでは、HTML 構造を変更することなく、order プロパティを使用して Flex アイテムの視覚的な順序を変更する方法を学びます。flexbox-order.html ファイルの CSS に、特定のアイテムに order プロパティを追加することで更新します。

.container {
  display: flex;
  width: 100%;
  background-color: #f0f0f0;
  padding: 20px;
  gap: 10px;
}

.item {
  width: 100px;
  height: 100px;
  background-color: #3498db;
  color: white;
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: Arial, sans-serif;
}

/* order プロパティを追加 */
.item1 {
  order: 3;
}
.item2 {
  order: 5;
}
.item3 {
  order: 1;
}
.item4 {
  order: 4;
}
.item5 {
  order: 2;
}

order プロパティに関する要点:

  • すべての Flex アイテムの既定の order 値は 0 です。
  • 小さい order 値が先に表示されます。
  • HTML 構造を変更することなくアイテムの順序を再設定できます。
  • 負の order 値も許されます。

HTML ファイルをブラウザで開いたときの例の出力:

[アイテムはこの順序で表示されます]
Item 3 | Item 5 | Item 1 | Item 4 | Item 2

アイテムの順序は今では元の HTML 構造とまったく異なり、order プロパティの威力を示しています。

さまざまな order 値を試す

このステップでは、さまざまな order 値が Flex アイテムのレイアウトを劇的に変える方法を調べます。flexbox-order.html ファイルの CSS を更新して、さまざまな order 構成を試してみましょう。

.container {
  display: flex;
  width: 100%;
  background-color: #f0f0f0;
  padding: 20px;
  gap: 10px;
}

.item {
  width: 100px;
  height: 100px;
  background-color: #3498db;
  color: white;
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: Arial, sans-serif;
}

/* さまざまな order 値を試す */
.item1 {
  order: -2;
  background-color: #e74c3c;
}
.item2 {
  order: 10;
  background-color: #2ecc71;
}
.item3 {
  order: 0;
  background-color: #f39c12;
}
.item4 {
  order: 5;
  background-color: #3498db;
}
.item5 {
  order: -1;
  background-color: #9b59b6;
}

主な観察結果:

  • 負の order 値が許され、アイテムを先頭に移動させることができます。
  • 小さい order 値を持つアイテムが先に表示されます。
  • 同じ order 値を持つアイテムは、元の HTML の順序を維持します。
  • order 値は任意の整数(正または負)です。

HTML ファイルをブラウザで開いたときの例の出力:

[アイテムはこの順序で表示されます]
Item 1 (赤)  | Item 5 (紫) | Item 3 (オレンジ) | Item 4 (青) | Item 2 (緑)

この例は、Flex アイテムを並べ替える際の order プロパティの柔軟性を示しています。

order プロパティのソートメカニズムを理解する

このステップでは、order プロパティが Flex アイテムをどのようにソートするかをより深く理解します。ソートメカニズムを調べるために、次の CSS で flexbox-order.html ファイルを更新します。

.container {
  display: flex;
  width: 100%;
  background-color: #f0f0f0;
  padding: 20px;
  gap: 10px;
  flex-wrap: wrap; /* アイテムが改行して表示されるようにするための設定 */
}

.item {
  width: 100px;
  height: 100px;
  background-color: #3498db;
  color: white;
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: Arial, sans-serif;
  margin: 5px;
}

/* ソートメカニズムを示す */
.item1 {
  order: 3;
  background-color: #e74c3c;
}
.item2 {
  order: 3;
  background-color: #2ecc71;
}
.item3 {
  order: 1;
  background-color: #f39c12;
}
.item4 {
  order: 2;
  background-color: #3498db;
}
.item5 {
  order: 1;
  background-color: #9b59b6;
}

主なソートメカニズムの洞察:

  1. 小さい order 値を持つアイテムが先に表示されます。
  2. 複数のアイテムが同じ order 値を持つ場合、それらは元の HTML ドキュメントの順序を維持します。
  3. 明示的な order がないアイテムの既定の order 値は 0 です。

HTML ファイルをブラウザで開いたときの例の出力:

[アイテムはこの順序で表示されます]
Item 3 (オレンジ) | Item 5 (紫) | Item 4 (青) | Item 1 (赤) | Item 2 (緑)

どのようになっているかを見てみましょう。

  • order: 1 のアイテム(Item 3 と Item 5)が先に表示されます。
  • order: 1 のアイテムの間では、元の HTML の順序により Item 3 が Item 5 の前に表示されます。
  • order: 3 のアイテム(Item 1 と Item 2)が最後に表示されます。
  • order: 3 の中では、Item 1 が Item 2 の前に表示されます。

まとめ

この実験では、参加者は構造化された HTML レイアウトを作成し、CSS スタイルを適用することで Flexbox の order プロパティを調べ、Flex アイテムをどのように動的に並べ替えることができるかを理解します。この実験は、5 つの Flex アイテムを持つコンテナを備えた基本的な HTML 構造を設定することから始まり、Flexbox レイアウト技術を実装するために必要な基本要素を示します。

段階的な手順を通じて、学習者は CSS の display プロパティを適用して Flex コンテナを作成し、個々のアイテムにスタイルを付け、要素の視覚的な配置を操作するために order プロパティを試します。さまざまな order 値を適用することで、参加者は元の HTML 構造を変更することなく Flexbox が柔軟で応答性の高いデザインレイアウトを可能にする方法について実践的な洞察を得るでしょう。