ホームページ ウェブフロントエンド CSSチュートリアル Flex-Grow、Flex-Shrink、およびFlex-Basisの理解

Flex-Grow、Flex-Shrink、およびFlex-Basisの理解

Apr 02, 2025 am 04:19 AM

Flex-Grow、Flex-Shrink、およびFlex-Basisの理解

CSS flex-growflex-shrinkflex-basis特性の相互作用を深く理解してください。 CSS属性を適用すると、舞台裏で多くのことが起こります。たとえば、次のHTMLがあるとします。

<div>
  <div>子供</div>
  <div>子供</div>
  <div>子供</div>
</div>
ログイン後にコピー

次に、いくつかのCSSを書きます:

 。親 {
  ディスプレイ:Flex;
}
ログイン後にコピー
ログイン後にコピー

実際、CSSコードの上記の行に加えて、次のスタイルを自分で書いたかのように、 .child要素に一連の属性を暗黙的に適用します。

 。子供 {
  フレックス:0 1 Auto; /*デフォルトのフレックス値*/
}
ログイン後にコピー

これは、一部のプロパティには、当社がオーバーライドすることを目的としたデフォルト値があるためです。これらの暗黙のアプリケーションのスタイルを理解しないと、レイアウトは非常に混乱し、管理が困難になる可能性があります。

flex属性は、3つの独立したCSS属性を同時に設定する速記CSS属性です。したがって、上記の略語は以下に相当します。

 。子供 {
  フレックスグロー:0;
  Flex-Shrink:1;
  Flex-basis:auto;
}
ログイン後にコピー

略語属性は、複数のCSS属性をバンドルするため、 background属性と同様に、複数の属性を一度に記述するのが便利です。

FlexBoxでは、 flex属性とそのサブプロパティの間に複雑な相互作用があるため、略語を使用することをお勧めします。

ほとんどの場合、これらのフレックスボックスプロパティの詳細を知る必要がないため、デフォルトのスタイルは非常に便利です。たとえば、FlexBoxを使用する場合、通常、次のように書きます。

 。親 {
  ディスプレイ:Flex;
  justify-content:space-bethed;
}
ログイン後にコピー

子どもの要素やスタイルに適用されるスタイルを気にする必要さえありません。しかし、これはFlexBoxの氷山の一角にすぎません。

flex-growflex-shrinkflex-basisプロパティなどのFlexBoxがどのように機能し、それらを使用してより複雑なレイアウトを作成する方法を深く掘り下げたいとしたらどうでしょうか。

簡略化された概要から始めて、子要素に適用されるデフォルトのflex属性に戻りましょう。

 。子供 {
  フレックス:0 1 Auto;
}
ログイン後にコピー

これらのデフォルトスタイルは、子要素にストレッチと縮小の方法を伝えます。私は通常、これらの略語の特性を次のように理解しています。

 /*心の上の上記のルールについてどう思いますか*/

。子供 {
  Flex:[Flex-Grow] [Flex-Shrink] [Flex-Basis];
}

/* または... */

。子供 {
  フレックス:[最大] [最小] [理想的なサイズ];
}
ログイン後にコピー

最初の値flex-growデフォルトで0になります。つまり、要素は(ほとんど)拡張されません。要素のサイズは、コンテンツに依存します。例えば:

 。親 {
  ディスプレイ:Flex;
}
ログイン後にコピー
ログイン後にコピー

flex-grow属性のデフォルト値を0から1に変更した場合:

 。子供 {
  フレックス:1 1 Auto;
}
ログイン後にコピー

その後、すべての要素は、 .parent Elementのスペースを均等に分配しますが、その内容が同じ長さである場合にのみです。これは次のとおりです。

 。子供 {
  フレックスグロー:1;
}
ログイン後にコピー

要素の1つを他の要素よりも成長させたい場合は、これを行うことができます。

 .child-three {
  フレックス:3 1 Auto;
}

/* または... */

.child-three {
  フレックスグロー:3;
}
ログイン後にコピー

flex-shrink略語の2番目の値です。

 。子供 {
  フレックス:0 1 Auto; / * flex-shrink = 1 */
}
ログイン後にコピー

flex-shrinkブラウザに要素の最小サイズを指示します。デフォルト値は1です。つまり、同じスペースが常に占有されています。 0に設定する場合:

 。子供 {
  フレックス:0 0 Auto;
}
ログイン後にコピー

要素は縮小しません。

flex-basis 、デフォルトでflex略語に最後に付加された最後の値であり、これは要素に理想的なサイズを維持するように指示します。デフォルトの値はautoです。これは「私の高さまたは幅を使用する」を意味します。

flex-basisを1000pxに設定したとき:

 .child-three {
  フレックス:0 1 1000px;
}
ログイン後にコピー

ブラウザに、1000pxのスペースを占有しようとするように指示します。不可能な場合、要素は他の要素に基づいて比例してスペースを占有します。

要素が縮小しないようにしたい場合:

 .child-three {
  フレックス:0 0 1000px;
}
ログイン後にコピー

flex-wrapプロパティを設定すると、レイアウトが変更されます。

 。親 {
  ディスプレイ:Flex;
  フレックスラップ:ラップ;
}
ログイン後にコピー

全体として:

  • flexの略語を使用してみてください。
  • 略語を使用する場合、最大、最小、理想的なサイズを覚えておいてください。
  • 要素コンテンツは、これらの値の仕組みにも影響します。

以上がFlex-Grow、Flex-Shrink、およびFlex-Basisの理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード 粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード Apr 03, 2025 am 10:30 AM

先日、Corey Ginnivanのウェブサイトから、この特に素敵なビットを見つけました。そこでは、スクロール中にカードのコレクションが互いに積み重ねられていました。

Googleフォント変数フォント Googleフォント変数フォント Apr 09, 2025 am 10:42 AM

Google Fontsが新しいデザイン(ツイート)を展開したようです。最後の大きな再設計と比較して、これははるかに反復的です。違いをほとんど伝えることができません

HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 Apr 11, 2025 am 11:29 AM

プロジェクトにカウントダウンタイマーが必要だったことはありますか?そのようなことのために、プラグインに手を伸ばすのは自然なことかもしれませんが、実際にはもっとたくさんあります

フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? Apr 05, 2025 pm 05:51 PM

フレックスレイアウトの紫色のスラッシュ領域に関する質問フレックスレイアウトを使用すると、開発者ツールなどの混乱する現象に遭遇する可能性があります(D ...

CSSを介してファーストクラスの名前アイテムを使用して子要素を選択する方法は? CSSを介してファーストクラスの名前アイテムを使用して子要素を選択する方法は? Apr 05, 2025 pm 11:24 PM

要素の数が固定されていない場合、CSSを介して指定されたクラス名の最初の子要素を選択する方法。 HTML構造を処理するとき、あなたはしばしば異なる要素に遭遇します...

HTMLデータ属性ガイド HTMLデータ属性ガイド Apr 11, 2025 am 11:50 AM

HTML、CSS、およびJavaScriptのデータ属性について知りたいと思っていたことはすべて。

SASSをより速くするための概念の証明 SASSをより速くするための概念の証明 Apr 16, 2025 am 10:38 AM

新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

See all articles