検索
ホームページウェブフロントエンドhtmlチュートリアルFlex レイアウトのチュートリアル: Grammar_html/css_WEB-ITnose

以前に書いた記事: この記事は 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 までご連絡ください。
    HTML、CSS、およびJavaScriptの理解:初心者向けガイドHTML、CSS、およびJavaScriptの理解:初心者向けガイドApr 12, 2025 am 12:02 AM

    webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

    HTMLの役割:Webコンテンツの構造HTMLの役割:Webコンテンツの構造Apr 11, 2025 am 12:12 AM

    HTMLの役割は、タグと属性を使用してWebページの構造とコンテンツを定義することです。 1。HTMLは、読みやすく理解しやすいようなタグを介してコンテンツを整理します。 2。アクセシビリティとSEOを強化するには、セマンティックタグなどを使用します。 3. HTMLコードの最適化により、Webページの読み込み速度とユーザーエクスペリエンスが向上する可能性があります。

    HTMLとコード:用語を詳しく見るHTMLとコード:用語を詳しく見るApr 10, 2025 am 09:28 AM

    htmlisaspecifictypeofcodefocuseduructuringwebcontent

    HTML、CSS、およびJavaScript:Web開発者に不可欠なツールHTML、CSS、およびJavaScript:Web開発者に不可欠なツールApr 09, 2025 am 12:12 AM

    HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。

    HTML、CSS、およびJavaScriptの役割:コアの責任HTML、CSS、およびJavaScriptの役割:コアの責任Apr 08, 2025 pm 07:05 PM

    HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

    HTMLは初心者のために簡単に学ぶことができますか?HTMLは初心者のために簡単に学ぶことができますか?Apr 07, 2025 am 12:11 AM

    HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用​​できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

    HTMLでの開始タグの例は何ですか?HTMLでの開始タグの例は何ですか?Apr 06, 2025 am 12:04 AM

    Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。

    CSSのフレックスボックスレイアウトを使用して、メニューの点線のラインセグメンテーション効果のセンターアラインメントを実現する方法は?CSSのフレックスボックスレイアウトを使用して、メニューの点線のラインセグメンテーション効果のセンターアラインメントを実現する方法は?Apr 05, 2025 pm 01:24 PM

    メニューで点線のラインセグメンテーション効果を設計する方法は?メニューを設計するときは、通常、皿の名前と価格の間に左右に合わせることは難しくありませんが、真ん中の点線またはポイントはどうですか...

    See all articles

    ホット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ヘンタイを無料で生成します。

    ホットツール

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SecLists

    SecLists

    SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

    PhpStorm Mac バージョン

    PhpStorm Mac バージョン

    最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

    ZendStudio 13.5.1 Mac

    ZendStudio 13.5.1 Mac

    強力な PHP 統合開発環境

    SublimeText3 Linux 新バージョン

    SublimeText3 Linux 新バージョン

    SublimeText3 Linux 最新バージョン