目次
1. フレックスレイアウトとは何ですか?
2. 基本概念
3. コンテナのプロパティ
3.1 flex-direction属性
3.2 flex-wrap プロパティ
3.3 flex-flow
3.4 justify-content プロパティ
align-items プロパティは、項目を交差軸上でどのように配置するかを定義します。
3.6 align-content属性
四、项目的属性
4.1 order属性
4.2 flex-grow属性
4.3 flex-shrink属性
4.4 flex-basis属性
4.5 flex属性
4.6 align-self属性
ホームページ ウェブフロントエンド htmlチュートリアル Flex レイアウトのチュートリアル: Grammar_html/css_WEB-ITnose

Flex レイアウトのチュートリアル: Grammar_html/css_WEB-ITnose

Jun 24, 2016 am 11:31 AM

以前に書いた記事: この記事は Ruan Yifeng のブログからの転載です。とてもわかりやすく書かれていると感じたので転載させていただきました。ありがとう先輩。

再版アドレスは次のとおりです: http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html

著者: Ruan Yifeng。

Flex レイアウト チュートリアル: 文法

レイアウトの従来のソリューションはボックス モデルに基づいており、表示属性 + 位置属性 + フロート属性に依存しています。たとえば、垂直方向のセンタリングを実現するのが難しいなど、特殊なレイアウトでは非常に不便です。

2009 年、W3C は、さまざまなページ レイアウトを簡単、完全、応答性良く実現できる新しいソリューションである Flex レイアウトを提案しました。現在、この機能はすべてのブラウザでサポートされているため、この機能を安全に使用できるようになりました。

以下のコンテンツは主に、「Flexbox の完全ガイド」と「CSS3 Flexbox プロパティのビジュアル ガイド」の 2 つの記事を参照しています。

1. フレックスレイアウトとは何ですか?

Flex は Flexible Box の略で、「柔軟なレイアウト」を意味し、箱型のモデルに最大限の柔軟性を提供するために使用されます。

任意のコンテナを Flex レイアウトとして指定できます。

  1. .box{display: flex;}

インライン要素でも Flex レイアウトを使用できます。

  1. .box{display:inline-flex;}

Webkit カーネルを搭載したブラウザでは、-webkit プレフィックスを追加する必要があります。

  1. .box{display:-webkit-flex;/* Safari */display: flex;}

Flex レイアウトに設定した後、子の float、clear、およびvertical-align 属性が変更されることに注意してください。要素は無効になります。

2. 基本概念

Flex レイアウトを使用する要素は、Flex コンテナ (フレックス コンテナ)、または略して「コンテナ」と呼ばれます。そのすべての子要素は自動的に、「アイテム」と呼ばれる Flex アイテム (フレックス アイテム) と呼ばれるコンテナ メンバーになります。

コンテナにはデフォルトで 2 つの軸があります: 水平主軸 (こんにゃく: 幅) と垂直交差軸 (こんにゃく: 高さ)。主軸の開始位置(境界線との交点)をメインスタート、終了位置をメインエンド、交差軸の開始位置をクロススタート、終了位置をクロスエンドといいます。

デフォルトでは、アイテムは主軸に沿って配置されます。 1 つのプロジェクトが占める主軸のスペースをメイン サイズ、1 つのアイテムが占める横軸のスペースをクロス サイズといいます。

3. コンテナのプロパティ

コンテナには以下の6つのプロパティが設定されます。

  • flex-direction
  • flex-wrap
  • flex-flow
  • justify-content
  • align-items
  • align-content
  • 3.1 flex-direction属性

    flex-direction属性は主軸の方向を決定します(アイテムの)配置方向)。

    .box {flex-direction: row | row-reverse | column | column-reverse;}
    ログイン後にコピー

    値は 4 つある場合があります。

  • row (デフォルト値): 主軸は水平であり、開始点は左端にあります。
  • row-reverse: 主軸は水平であり、開始点は右端にあります。
  • column: 主軸は垂直であり、始点は上端にあります。
  • column-reverse: 主軸は垂直であり、開始点は下端にあります。
  • 3.2 flex-wrap プロパティ

    デフォルトでは、項目は直線 (「軸」とも呼ばれます) 上に配置されます。 flex-wrap 属性は、1 つの軸が収まらない場合に線を折り返す方法を定義します。

    .box{flex-wrap: nowrap | wrap | wrap-reverse;}
    ログイン後にコピー

    それは 3 つの値を取ることができます。

    (1) nowrap (デフォルト): 行の折り返しはありません。

    (2) ラップ: 最初の行を先頭にしてラップします。

    (3) ラップリバース: 最初の行を以下でラップします。

    3.3 flex-flow

    flex-flow プロパティは、flex-direction プロパティと flex-wrap プロパティの略称であり、デフォルト値は row nowrap です。

    .box {flex-flow: <flex-direction> || <flex-wrap>;}
    ログイン後にコピー

    3.4 justify-content プロパティ

    justify-content プロパティは、主軸上の項目の配置を定義します。

    .box {justify-content: flex-start | flex-end | center | space-between | space-around;}
    ログイン後にコピー

    5 つの値を取ることができ、特定の位置合わせは軸の方向に関連します。以下では、主軸が左から右であると仮定します。

    flex-start (デフォルト): 左揃え
  • flex-end: 右揃え
  • center: 中央揃え
  • space-between: 項目間の等間隔で両端を揃えます。
  • スペースアラウンド: 各アイテムは両側に等間隔に配置されます。したがって、項目間のスペースは、項目と境界線の間のスペースの 2 倍になります。
  • 3.5 align-items プロパティ

    align-items プロパティは、項目を交差軸上でどのように配置するかを定義します。

    .box {align-items: flex-start | flex-end | center | baseline | stretch;}
    ログイン後にコピー

    5 つの値を取る場合があります。特定の位置合わせは、交差軸の方向に関連します。以下では、交差軸が上から下であると仮定します。

  • flex-start:交叉轴的起点对齐。
  • flex-end:交叉轴的终点对齐。
  • center:交叉轴的中点对齐。
  • baseline: 项目的第一行文字的基线对齐。
  • stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。
  • 3.6 align-content属性

    align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

    .box {align-content: flex-start | flex-end | center | space-between | space-around | stretch;}
    ログイン後にコピー

    该属性可能取6个值。

  • flex-start:与交叉轴的起点对齐。
  • flex-end:与交叉轴的终点对齐。
  • center:与交叉轴的中点对齐。
  • space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
  • space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
  • stretch(默认值):轴线占满整个交叉轴。
  • 四、项目的属性

    以下6个属性设置在项目上。

  • order
  • flex-grow
  • flex-shrink
  • flex-basis
  • flex
  • align-self
  • 4.1 order属性

    order属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。

    .item {order: <integer>;}
    ログイン後にコピー

    4.2 flex-grow属性

    flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。

    .item {flex-grow: <number>; /* default 0 */}
    ログイン後にコピー

    如果所有项目的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。

    4.3 flex-shrink属性

    flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。

    .item {flex-shrink: <number>; /* default 1 */}
    ログイン後にコピー

    如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。

    负值对该属性无效。

    4.4 flex-basis属性

    flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。

    .item {flex-basis: <length> | auto; /* default auto */}
    ログイン後にコピー

    它可以设为跟width或height属性一样的值(比如350px),则项目将占据固定空间。

    4.5 flex属性

    flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。

    .item {flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]}
    ログイン後にコピー

    该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto)。

    建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值。

    4.6 align-self属性

    align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。

    .item {align-self: auto | flex-start | flex-end | center | baseline | stretch;}
    ログイン後にコピー

    该属性可能取6个值,除了auto,其他都与align-items属性完全一致。

     

    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    AI Hentai Generator

    AI Hentai Generator

    AIヘンタイを無料で生成します。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    &lt; Progress&gt;の目的は何ですか 要素? &lt; Progress&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:34 PM

    この記事では、HTML&lt; Progress&gt;について説明します。要素、その目的、スタイリング、および&lt; meter&gt;との違い要素。主な焦点は、&lt; Progress&gt;を使用することです。タスクの完了と&lt; Meter&gt; statiの場合

    &lt; datalist&gt;の目的は何ですか 要素? &lt; datalist&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:33 PM

    この記事では、HTML&lt; Datalist&GT;について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

    &lt; meter&gt;の目的は何ですか 要素? &lt; meter&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:35 PM

    この記事では、html&lt; meter&gt;について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化&lt; Meter&gt; &lt; Progress&gt;およびex

    HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? Mar 17, 2025 pm 12:20 PM

    記事では、HTML5クロスブラウザーの互換性を確保するためのベストプラクティスについて説明し、機能検出、プログレッシブエンハンスメント、およびテスト方法に焦点を当てています。

    HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? Mar 17, 2025 pm 12:27 PM

    この記事では、ブラウザのユーザー入力を直接検証するために、必要、パターン、MIN、MAX、および長さの制限などのHTML5フォーム検証属性を使用して説明します。

    ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? Mar 20, 2025 pm 05:56 PM

    この記事では、モバイルデバイスのレスポンシブWebデザインに不可欠なViewportメタタグについて説明します。適切な使用により、最適なコンテンツのスケーリングとユーザーの相互作用が保証され、誤用が設計とアクセシビリティの問題につながる可能性があることを説明しています。

    HTML5&lt; time&gt;を使用するにはどうすればよいですか 日付と時刻を意味的に表す要素? HTML5&lt; time&gt;を使用するにはどうすればよいですか 日付と時刻を意味的に表す要素? Mar 12, 2025 pm 04:05 PM

    この記事では、html5&lt; time&gt;について説明します。セマンティックデート/時刻表現の要素。 人間の読み取り可能なテキストとともに、マシンの読みやすさ(ISO 8601形式)のDateTime属性の重要性を強調し、Accessibilitを増やします

    &lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? &lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? Mar 20, 2025 pm 06:05 PM

    この記事では、&lt; iframe&gt;外部コンテンツをWebページ、その一般的な用途、セキュリティリスク、およびオブジェクトタグやAPIなどの代替案に埋め込む際のタグの目的。

    See all articles