フレックス要素。 実質的にzastosuvannyaFlexBox。 記憶の痕跡のようなスピーチ

ゴロフナ / 2つのクールなリーダー

CSS Flexboxの仕組み:Web側の要素のレイアウトの最初の紹介

Flexboxのクリックは、純粋なCSSの奇妙な部分(たとえば、垂直方向のスワイプ)から私たちを悩ませ、彼らは彼らの仕事をするという素晴らしい仕事をします。 特に初心者の場合、1時間のヨガロボットの原則のエールrazіbratisyaは流暢になります。

Flexboxの主なタスクは、gnuchkiを使用してボールを作成し、それらを操作することです。直感的に理解できます。 ワインにラベルを付けるという目標を達成するために、サイズの変更やワイン間の変更など、子要素と一緒に動作するため、コンテナー自体を変更することができます。

悪くはありませんが、実際のスムーズさには驚かされます。 この記事では、最も人気のある9つのFlexboxパワーを紹介します。悪臭を放つもの、悪臭が実際に機能するものを理解しましょう。

ディスプレイ:フレックス

軸バット側:

4つの異なるカラーdivがあります さまざまな拡張、これは灰色のdivの中央にあるはずです。 スキンdivのパワーディスプレイ:ブロック。 したがって、革の正方形が列の幅全体を占めます。

Flexboxの使用を開始するには、フレックスコンテナを使用してコンテナを拡張する必要があります。 このように戦う:

#container(表示:フレックス;)

特に何も変わっていません-divはもはや一列に並んでいませんでした。 エール、あなたはそれを本当に一生懸命に解決しました。 あなたはあなたの正方形にパワークラスを与えました。それはいわゆる「フレックスコンテキスト」です。

フレックス方向

フレックスコンテナには2つの軸があります。ヘッドはすべてthに垂直です。

ロックの後ろでは、すべてのオブジェクトが主軸上で波立たせられています。つまり、右に悪の枢軸です。 したがって、display:flexを回すと、正方形が線に変わります。 ただし、フレックス方向ではヘッドを回転させることができます。

#container(表示:フレックス;フレックス方向:列;)

flex-direction:columnは、頭に垂直な軸に沿った正方形には影響しないことに注意することが重要です。 頭自体がroztashuvannyaを変えており、今では底にまっすぐになっています。

フレックス方向のパワーが向上:行反転と列反転。


コンテンツを正当化する

Justify-コンテンツは、ヘッド軸に要素を表示するために一致します。

flex-direction:rowに回転します。

#container(display:flex; flex-direction:row; justify-content:flex-start;)

Justify-contentは5つの値を取ることができます:

  1. フレックススタート;
  2. フレックスエンド;
  3. 中心;
  4. スペース-間;
  5. 周りのスペース。

Space-betweenは、正方形間の同じスペースを定義しますが、コンテナと正方形の間は定義しません。 Space-aroundも正方形の間に同じ距離を設定しますが、現在はコンテナと正方形の間にあり、正方形の半分は正方形の間にあります。

アイテムを揃える

justify-contentは頭の軸で機能しますが、align-itemsは頭の軸に垂直な軸で機能します。

flex-direction:rowに戻り、align-itemsコマンドを実行します。

  1. フレックススタート;
  2. フレックスエンド;
  3. 中心;
  4. ストレッチ;
  5. ベースライン。

align-itemsの場合:正方形の高さを伸ばすのはautoによるものであることに注意してください。 align-itemsの場合:ベースライン段落タグをクリアする必要はありません。クリアしないと、次のように表示されます。

軸がどのように機能するかをよりよく理解するために、justify-contentとalign-itemsを組み合わせて、2つのフレックス方向の力の中心でどのように機能するかに驚嘆します。

自己調整

Align-selfを使用すると、okremo要素を整列させることができます。

#container(align-items:flex-start;).square#one(align-self:center;)//この正方形のみが中央に配置されます。

2つの正方形に対してalign-selfを作成し、他の正方形に対してalign-items:centerおよびflex-direction:rowを作成しましょう。

フレックスベース

Flex-basisは要素の順序に従い、最初と最後は他のFlexbox当局によって変更されます。

フレックスベースは、要素の拡張を主軸に埋め込みます。

ヘッド軸を真っ直ぐ前に変更すると、どうなるか考えてみましょう。

たまたま要素の高さを変更したことを尊重してください。 フレックスベースは、要素の高さとして定義でき、要素の幅は直線軸の休耕地として定義できます。

フレックスグロー

Tsyavlastіvіsttrohifoldіsha。

穂軸については、正方形に同じ幅の120pxを与えましょう。

キャプチャの場合、flex-grow値は0です。Zeは、正方形が成長でフェンスで囲まれていることを意味します(コンテナ内のスペースを占有します)。

スキンスクエアにflex-grow1を設定してみましょう。

広場はコンテナで占められていました。 flex-grow値はwidth値をオーバーライドします。

しかし、ここに責任があることが1つあります:flex-grow:1はどういう意味ですか?

flex-growを999に設定してみましょう。

私は…何も起こらなかった。 したがって、flex-growが絶対値ではなく、外部値を取得するものを通過しました。

Tseは、他の正方形との関係のように、flex-growの意味のように、重要ではないことを意味します。

フレックスグロースキンスクエアの背面は1で、幅の合計は6です。また、コンテナは6つの部分に分割されています。 革の正方形は、コンテナ内の利用可能なスペースの1/6を占めます。

3番目の正方形のフレックスグローが2になると、コンテナは7つの部分(1 + 1 + 2 + 1 + 1 + 1)に分割されます。

現在、3番目の正方形はスペースの2/7を占め、reshta-それぞれ1/7です。

flex-growは主軸に対してのみ機能することに注意してください(直接変更するまで)。

フレックスシュリンク

フレックスシュリンク-フレックスグローの直接的な広がり。 Vonoは、正方形のスケールをrozmіrіで変更できることを意味します。

要素がコンテナに収まらない場合、フレックスシュリンクが振動します。

あなたは要素がrozmirahで変わるかもしれないことを意味します、そしてヤク-そうではありません。 デフォルトでは、スキンの正方形のフレックスシュリンク値は1です。これは、コンテナが変更されると正方形が縮小することを意味します。

flex-growとflex-shrinkを1に設定します。

次に、3番目の正方形のflex-shrink値を0に変更します。これを縮小するように設定したので、幅は120pxに等しくなります。

フレックスシュリンクは比率に基づいていることに注意してください。 つまり、フレックスシュリンクの正方形は6つ以上あり、他の正方形は2つ以上あるので、正方形がどんどん近くに絞られることを意味します。

フレックス

Flexは、flex-grow、flex-shrink、およびflex-basisに代わるものです。

ロックごとの値:0(成長)1(縮小)および自動(基本)。

2つの正方形を作成しましょう:

Square#one(flex:2 1 300px;).square#two(flex:1 2 300px;)

両方の正方形にはフレックスベースがあります。 これは、幅が300pxになることを意味します(コンテナの幅:600pxにマージンとパディングを加えたもの)。

ただし、コンテナのサイズをさらに拡大すると、最初の正方形(最大のフレックスグロー)が大きくなり、他の正方形(最大のフレックスシュリンク)が大きくなります。

スピーチが成長し、圧迫するにつれて

最初のマス目が変わっても、勝ちは他のマスの2倍にはならず、他のマスが変わっても、勝ちは最初のマスの2倍にはなりません。 それは、フレックスグローとフレックスシュリンクが成長とスピードアップに使用されるものに依存します。

数学のTrochs

穂軸コンテナサイズ:640px。 パディングのスキン側から20pxを見ることができますが、2つの正方形だけで600pxが欠落しています。

コンテナの幅が430px(210pxインライン)の場合、最初の正方形(flex-shrink:1)は70pxアウトです。 もう一方の正方形(flex-shrink:2)は140pxを消費します。

コンテナが340pxに縮小する場合、300pxを使用します。 最初の正方形は100ピクセルを使用し、他の正方形は200ピクセルを使用します。

同じことがフレックスグローにも当てはまります。

著者について:レイチェル・アンドリュー-Smashing Magazineの編集長だけでなく、Web小売業者、ライター、スピーカーのVaughnは、秘密の本の著者です。 新しいCSSレイアウト、Perchコンテンツキュレーションシステムの小売業者の1つ。 あなたのウェブサイトrachelandrew.co.ukにビジネスとテクノロジーについて書いてください。

短いzmist: これらの統計では、Flexboxビューの機能と同じ基本ルール、主軸と横軸に沿ったビューの操作方法を確認できます。

値は垂直方向に機能するため、フレックス方向は列に固定されます。 確かに、サイトにrozpodіlu用の空きスペースがない可能性があるため、このデモのように、コンテナーの高さやブロックサイズを追加することはできません。

ヘルプアラインメントコンテンツの軸アラインメント

flex-wrap:wrapがコンテナの軸スプリントで指定されている場合、align-contentを変更して、クロス軸の行をラップできます。 エールには追加のスペースが必要です。 私のデモンストレーションでは、横方向のワークフローが列の真正面にあり、コンテナーの高さを60vhで示しました。 シャードは大きく、すべての要素を表示するために必要なものは少なく、垂直方向に空きスペースがあります。

次に、align-contentに値を入力できます。

flex-directionがcolumnとして指定されている場合、align-contentは適用されたとおりに有効です。

コンテンツの正当化の時点で、行のグループを使用して練習し、スペースを拡張します。

場所による権限-コンテンツ

Box Alignment仕様では、場所コンテンツの力を知ることができます。 権限があることを選択するということは、justify-contentとalign-contentを同時に設定することを意味します。 最初の値はalign-content用で、もう1つはjustify-content用です。 複数の値が指定されている場合は、両方の累乗にzastosovuetsyaが適用されます。

コンテナ(place-content:space-between Stretch;)
Vidpovidaєtsoma:

コンテナ(align-content:space-between; justify-content:stretch;)
そしてこのコード:

コンテナ(place-content:space-between;)
攻撃に等しい:

コンテナ(align-content:space-between; justify-content:space-between;)

ヘルプ整列アイテムの軸整列

これで、要素または行のセットをグループとして逆にすることが可能であることがわかりました。 横軸上で1対1の比率に従って要素を整列させる別の方法があります。 コンテナの高さは、最大の要素の高さです。


オプションとして、コンテナの高さの累乗を設定できます。


要素が最大の要素のサイズに引き伸ばされる理由は、align-itemsパラメーターєstretchが原因です。 要素は、それらがまっすぐであるコンテナの拡張まで横軸に沿って引き伸ばされます。

革の列が新しい容器としてのバガタリア容器用の革の列を持っているという敬意を払ってください。 この行の最大の要素は、この行のすべての要素の拡張にとって重要です。

フレックスコブの深紅色は、アイテム要素をフレックススタート値に揃えるために指定できます。この場合、悪臭はコンテナのコブに整列し、高さまで伸びなくなります。


フレックスエンド値は、横軸に沿ってコンテナの端に移動します。


中央の値を選択すると、要素は視覚的に1つずつ中央に配置されます。


ベースラインを確認することもできます。 1つのsubstavіからのこれらのgarantuyvyrivnyuvannyaテキスト、vіdmіnuvіvіvnyuvannyavіvіvnyuvannyapolіvnavkoleテキスト。


これらのオプションはすべて、デモで試すことができます。

助けのための個別のケア-自己

align-itemsの力は、すべてのアイテムのステータスを一度に決定します。 実際には、グループ内のすべての要素にalign-self値を設定します。 他の要素のalign-selfの力を獲得することもできるので、それらの他の要素の行の真ん中でそれを除外することができます。

コンテナ内の攻撃的なバットには、中央のすべてのグループを整列させるための整列アイテムと、最初の要素と残りの要素のための整列アイテムがあります。

なぜ自分を正当化できないのですか?

多くの場合、障害は栄養です。そのため、主軸の1つの要素または要素のグループを削除することは不可能です。 Flexboxに主軸で表示する機能がないのはなぜですか? スペースを拡張する方法としてjustify-contentとalign-contentを表示すると、それが明らかになります。 Miは、グループからのような要素を持って右側にいることができ、rozmіschuєmovіlniyは歌の順序で広がります:穂軸の上、またはグループのように、または要素の間。

また、justify-contentとalign-contentがCSSグリッドレイアウトでどのように機能するかについて慎重に考えることができます。 グリッドでは、グリッドコンテナ内のrozpodіluの空きスペースに対してパワーの力が獲得されます グリッドトラック間。 ここでも私たちは一群の道を歩みます-そしてこれらの力の助けを借りて、私たちはそれらを助けるためにそれらを拡大します。 グループiGrid、i Flexboxで操作できるため、小さな要素を取得して他の方法で操作することはできません。 ティムは小さくはありませんが、主軸上の自己の力について話す場合、レイアウト設計者が望むように、レイアウトの設計を処理する方法です。 Tsevikoristannya自動散水。

主軸上の自動散水ステーションの選択

CSSブロック(コンテンツラッパーなど)を中央に配置したことがありますか ヘッドサイド、左利きフィールドと右利きフィールドを自動に設定すると、自動フィールドを備えた作業ドキュメントがすでに作成されます。 灌漑用の自動の値は、直接設置するための最大スペースに設定されます。 ブロックを中央に配置するために、左右両方のマージンを自動に設定します。それらのスキンはより多くのスペースを占めるのに役立ちます。そのため、ブロックは中央近くに配置されます。

自動マージンはFlexboxでより適切に機能し、主軸に少数のアイテムまたはアイテムのグループのみを表示します。 ステッピングバットが表示されます 典型的なvypadok。 Єナビゲーションバー、要素は行として表示され、double-cob justify-content:start。 たとえば、段落の残りの部分を行の残りの部分のように見せて、行に十分なスペースがあることを理解したいと思います。

この要素を取得し、margin-leftの値がautoであることを確認します。 Tseは、要素の左手をできるだけ離すようにフィールドが拡大されることを意味します。したがって、要素は右の境界にvishtovhuєtsyaします。

主軸で自動フィールドを選択すると、justify-contentが機能しなくなり、自動フィールドがスペース全体を占めるようになります。そうしないと、justify-contentの助けを借りて拡張されます。

スペアのvirivnyuvannya

説明を視覚化する皮膚的な方法の場合、視覚化のタスクが不可能な場合に発生するフォールバックオプションです。 たとえば、コンテナごとに1つの要素しかなく、justify-content:space-betweenがある場合、何が起こる可能性がありますか? この場合、予備のフレックススタートアライメントがあります-コンテナの耳ごとに1つの要素がアライメントされます。 justify-content:space-aroundvipadkaには予備のビューがあります。

フロー仕様の予約を変更することはできません。 仕様への受け入れ。これにより、将来のバージョンで十分なフォールバックを導入できます。

安全ではないvirivnyuvannya

Box Alignmentの仕様に最近追加されたのは、キーワードのバリエーションを調べる安全および非安全の概念でした。 安全なі 安全ではない.

ステッピングコードでは、残りの要素がコンテナに対して広すぎます。安全でない曲げやコンテナの曲げの場合、要素は側面の左側に形成され、再配置のスカラップは側面を超えます。

コンテナ(表示:flex; flex-direction:column; width:100px; align-items:unsafe center;).item:last-child(width:200px;)


安全にvirivnyuvannyazabіgaєvtraіdanih、remіshchuyuchirepovinnnyaonіnshiybіk。

コンテナ(表示:フレックス;フレックス方向:列;幅:100px;整列アイテム:セーフセンター;).item:last-child(幅:200px;)


キーワードすべてのブラウザでサポートされているわけではありませんが、BoxAlignment仕様でFlexboxを制御する方法を示します。

ヴィスノヴォク

レイアウトの信頼性はFlexboxリストから始まりましたが、現在は独自の詳細を取得しており、他のレイアウトコンテキストに合わせて調整できます。 Flexboxでそれらを記憶するのに役立つ重要な事実の軸:
  • 主軸の場合は位置合わせし、横軸の場合は位置合わせします。
  • align-contentとjustify-contentは多くのスペースを必要とします。
  • グループの要素まで構築され、それらの間のスペースを拡大する、コンテンツの整列とコンテンツの正当化の力。 virіvnyuvannyaokremy要素を示すことは不可能です。その力-自己は毎日です。
  • 1つの要素をチェックする場合、または軸に沿ってグループを分割する場合は、自動フィールドを選択します。
  • ただし、align-itemsは、グループ全体のalign-self権限を設定します。 グループの子要素にalign-selfのタグを付けて、値を個別に設定します。

短くするために、Flexboxからのレイアウトが提供されます 簡単な解決策難しい仕事をするとき。 たとえば、要素を垂直に回転させる必要がある場合、フッターを画面の下部に押し込む必要がある場合、または単にブロックのスプラットを1列に挿入して、悪臭がスペース全体を占めるようにします。 同様のタスクはフレックスなしで折りたたまれます。 エール、「民兵」にもっと似た解決策を鳴らしてください-それを取り、認識のためではなくcssを打ち負かしてください。 フレックスモデルが設計されているのと同じように、フレックスボックスからの同じ方法、それ自体が変わるのと同じ方法。

CSSフレキシブルボックスレイアウトモジュール(フレキシブルブロックを使用したレイアウト用のCSSモジュール)は、幅と高さの調整、レイアウトの論理的でシンプルな作成など、さまざまなHTMLデザインを作成する際の欠陥をクリーンアップするために作成されました。 そして、論理的な心は、原則として、結果が歪められていない間違った場所で実践されています-論理は私たちのすべてです!

Flexboxを使用すると、自分自身をエレガントに制御できます さまざまなパラメータコンテナの中央にある要素:まっすぐ進む、順序、幅、高さ、空気の配置と横方向、自由空間の配置、要素の伸縮。

基本知識

FlexBoxは、コンテナと1つ以上の子要素(アイテム)からスタックされます。

フレックスボックスを有効にするには、誰でも HTML要素 css power display:flex;を提供するのに十分です。 または表示:インラインフレックス; 。

1
2

フレックスパワーをオンにすると、コンテナの中央に2つの軸が作成されます。ヘッドは横向きです(垂直(⊥)、クロスは)。 (最初の等しい)要素の口ひげは、主軸に沿って揺れています。 ロックの後ろでは、頭は水平でまっすぐなレボルフにすることができ(→)、十字架は垂直で獣に向かってまっすぐです(↓)。

頭と交差軸は大衆によって記念されることができます、そして要素は獣に下に置かれます(↓)そしてそれらが高さに置かれるのをやめるならば、それらは右に崩壊します(→)-そして軸は単純でした大衆に記憶されています。 同時に、要素の穂軸とrozashuvannyaの終わりは変更されません-それらは直接(osi)だけ変更されます! また、コンテナの中央に車軸を表示する必要があります。 そこにある「物理的な」軸について考えたり、悪臭を放ったりする必要はありません。 ここでの軸は、コンテナの中央にあるいくつかのまっすぐな要素です。 たとえば、主軸の中心で要素の配置を注文してから、主軸の中心を直接変更した場合、変更して配置します。要素は水平方向の中央にあり、鋼は垂直方向の中央にあります。 。Div。 お尻。

Flex-boxのもう1つの重要な機能は、横方向の直線に列が存在することです。 言語が何であるかを理解するために、頭が水平であり、多くの要素があり、悪臭がコンテナで「漏れ」ないことを明確にしましょう。次の行に進みます。 トブト。 コンテナは次のようになります。コンテナの中央には2つの行があり、スキンの行には要素のスプラットがあります。 気づいてますか? そして今、私たちは垂直に向きを変えることができることを思い出してください、要素以上ではなく、ああラビ! どのようにcepracyuє良いかは、お尻から力まで見ることができます。 そして、軸は概略的に次のようになります。

CSSパワー、レイアウトモデルに挿入できます:float、clear、vertical-align、columnsはflexコンストラクトでは機能しません。 ここでは、レイアウトの他のモデルが勝利し、cssパワーは単に無視されます。

CSS Power Flexbox

Flexboxは、すべてのフレックス構造をラップするためのさまざまなcssルールを復讐します。 メインコンテナにロードする必要があるものもあれば、要素コンテナにロードする必要があるものもあります。

コンテナ用

画面:

エレメントのフレックスパワーをオンにします。 力の力の下で、要素自体が消費され、新しい要素の貢献:それらは最初の行の先頭よりも少なくなります-それらはフレックスコンテナの要素になります。

  • フレックス-要素は全幅に拡張され、他のブロックの中央に独自のスペースがある場合があります。 穂軸とブロックの終わりに行を転送する必要があります。
  • インラインフレックス-要素は他の要素によってラップされています。 この場合、内部はブロック要素のようにフォーマットされ、要素自体は統合のようになります。

flexとinline-flexは異なり、display:blockやdisplay:inline-blockなどの他の要素との相互作用も異なります。

フレックス方向:

コンテナの主軸を直接変更します。 横方向にすべてが同じように変化します。

  • 行(デフォルト)-右にまっすぐ進む要素(→)
  • -要素を獣に向かってまっすぐに(↓)
  • 行反転-直接element_vrightnal_vo(←)
  • カラムリバース-要素を下から上に向ける()
フレックスラップ:

コンテナに配置されていない転送された要素を許可します。

  • nowrap(デフォルト)-ネストされた要素は、コンテナに配置されるため、1つの行(direction = row)または1つの列(direction = column)に個別に配置されます。
  • 包む-悪臭がコンテナに広がらないように、次の行への要素の転送が含まれます。 したがって、横軸の要素の移動がオンになります。
  • 逆巻き--tezh、そのラップは下りではなく上り坂(真正面のゲート)でのみ転送されます。
フレックスフロー:方向ラップ

フレックスディレクションとフレックスラップの力をさらに侮辱します。 悪臭は一度にハッキングされることが多いため、フレックスフローの力によって作成されるコードは少なくなります。

フレックスフローは、ギャップで区切られた2つの累乗の意味を受け入れます。 そうでなければ、あなたは一つの意味を言うことができます、それは品質としてです。

/*フレックス方向のみ*/flex-flow:row; フレックスフロー:行逆; フレックスフロー:カラム; フレックスフロー:カラムリバース; /*フレックスラップのみ*/flex-flow:nowrap; フレックスフロー:ラップ; フレックスフロー:ラップリバース; / *問題のある値:flex-directionとflex-wrap * / flex-flow:row nowrap; フレックスフロー:カラムラップ; フレックスフロー:列-逆ラップ-逆; justify-content:

主軸から要素を表示します。方向=行の場合は水平方向から、方向=列の場合は垂直方向から。

  • フレックススタート(デフォルト)-要素は穂軸になります(国ではスペースが不足する可能性があります)。
  • フレックスエンド-要素は最後まで振動します(穂軸には十分なスペースがあります)
  • 中心- 中央に
  • 間のスペース-極端な要素は端に押し込まれます(要素間のスペースは均等に分割されます)
  • 周りのスペース-空き領域が要素間に均等に分散されます(極端な要素はエッジに固執しません)。 コンテナの端と最も外側の要素の間のスペースは小さくなり、行の中央にある要素の間のスペースは低くなります。
  • スペース均等
コンテンツを揃える:

横軸の要素があるVirivnyuє行。 反対の軸に対してのみ同じジャスティファイコンテンツ。

注:Pratsyuєが2行未満の場合は、。 複数の行が存在する場合は何も起こりません。

トブト。 flex-direction:rowの場合、垂直行の累乗は表示されません。 ここで重要なのは、ブロックの高さはbutiがzhorstkoに設定されているためであり、行の高さが高くなる可能性があることに注意してください。それらの間のスペース...そして軸がflex-direction:column、flex-directionの場合、行は水平方向に折りたたまれます→そしてコンテナの幅は行の幅よりも大きくなる可能性があり、行はある意味で膨らみます。

  • ストレッチ(デフォルト)-行は一列に一列に引き伸ばされます
  • フレックススタート-行はコンテナの上部でグループ化されます(たとえば、スペースが不足している可能性があります)。
  • フレックスエンド-行はコンテナの下部でグループ化されます(穂軸には十分なスペースがあります)
  • 中心-行はコンテナの中央にグループ化されます(両側にスペースが残っています)
  • 間のスペース-極端な行が端に押し込まれます(行間のスペースが均等に広がります)
  • 周りのスペース-より多くのスペースが行間に均等に分散されます(極端な要素が端にくっつかない)。 コンテナの端と最も外側の要素の間のスペースは小さくなり、行の中央にある要素の間のスペースは低くなります。
  • スペース均等-また、スペースアラウンド、コンテナの端と要素の間の極端な要素にのみ立ってください。
アイテムの整列:

行の中央にある横軸のVivnyuє要素(非表示の行)。 トブト。 行自体はalign-contentを介して整列され、これらの行の中央にある要素(行)はalign-itemsを介して、すべて横軸に沿って整列されます。 主軸にはそのようなことはなく、justify-contentを介してこれらの要素の行を理解する方法はありません。

  • ストレッチ(デフォルト)-要素は一列に一列に引き伸ばされます
  • フレックススタート-要素は連続して穂軸に押し込まれます
  • フレックスエンド-要素は行の最後まで圧縮されます
  • 中心-要素は行の中央に配置されます
  • ベースライン-要素はテキストのベースラインの後ろに配置されます

コンテナ要素の場合

フレックスグロー:

コンテナ用の空きスペースが存在する場合の要素の増加係数を設定します。 プロモーションフレックスグロー:0トブト。 生きている要素は、コンテナ内のスペースの量の増加を非難することではありません。

通常、flex-grow:0

  • すべての要素にflex-grow:1を指定すると、すべての悪臭が同じように拡張され、すべてがコンテナに入れられます。
  • 要素の1つにflex-grow:1を指定すると、すべてをコンテナーに格納できなくなり、justify-contentは解析できなくなります。つまり、拡張するための空きスペースがありません。
  • フレックスグローあり:1。 それらの1つが屈曲成長できる場合:2、ワインはさらに2つになり、もう1つは低くなります
  • フレックスコンテナの中央にあるすべてのフレックスブロックがflex-grow:3を持つことができる場合、それらは同じサイズになります
  • フレックスグローあり:3。 それらの1つがflex-grow:12である場合、それは4倍大きく、低くなります

どのように働きますか? コンテナの幅は500pxで、ベース幅を100pxにすることができる2つの要素を含めることができると想定します。 したがって、コンテナには300個の空きピクセルがあります。 ここで、最初の要素について、flex-grow:2と言うことができます。 、および別のフレックスグロー:1; ブロックはコンテナの全幅を占めるため、最初のブロックの幅は300ピクセル、他のブロックの幅は200ピクセルになります。 コンテナ内の使用可能な300pxの空き領域は、2:1、最初の要素に対して+ 200px、もう一方の要素に対して+100pxの比率で要素間で分割されたと説明されています。

注:値を指定できます 小数例:0.5-flex-grow:0.5

フレックスシュリンク:

要素の変更係数を指定します。 パワーはフレックスグローであり、コンテナに空きスペースがないため、要素がしがみつく罪があることを意味します。 トブト。 コンテナの拡張に対してすべての要素の拡張量が多い場合、当局はプラクシュヴァティを開始します。

通常、フレックスシュリンク:1

コンテナの幅を600ピクセルにし、幅を300ピクセルにすることができる2つの要素を含めることができるとしましょう--flex-basis:300px; 。 トブト。 2つの要素がコンテナを満たします。 最初の要素にはflex-shrinkが必要です:2; 、および別のフレックスシュリンク:1; 。 次に、コンテナの幅を300pxに変更します。 要素は300px縮小して、コンテナの中央に配置されます。 spіvvіdshennі2:1、tobtoで絞ります。 最初のブロックは200ピクセル縮小し、他のブロックは100ピクセル縮小し、新しい要素は100ピクセルと200ピクセルになります。

注:値には分数を含めることができます(例:0.5-flex-shrink:0.5)

フレックスベース:

要素の幅に追加することに注意するため、要素のベース幅(要素の前の幅)を設定します。 値は、px、em、rem、%、vw、vhなどに設定できます。 ボックス幅は、ベース幅とフレックスグロー、フレックスシュリンクの値、およびブロックの中央のコンテンツに設定されます。 autoを使用すると、要素は中央のコンテンツと一致するベース幅に設定されます。

通常:自動

それ以外の場合は、パワーエレメントの幅だけでエレメントの幅を設定する方が簡単です。 たとえば、幅:50%; これがコンテナの中央の要素が50%に等しくなることを意味する場合、タンパク質はフレックスグローとフレックスシュリンクの力を使用します。 これは、要素がフレックスベースで割り当てられた要素よりも大きい要素の中央で引き伸ばされている場合に必要になることがあります。 お尻。

flex-basisは、ストレッチとエンボスをリセットするのが「難しい」でしょう。flex-basis:200px; flex-grow:0; flex-shrink:0; 。 すべてがこのflexのように書くことができます:0 0 200px; 。

フレックス:(成長収縮ベース)

3つの力の省略形:flex-growflex-shrinkflex-basis。

標準:フレックス:01自動

ただし、1つまたは2つの値を入力できます。

フレックス:なし; / *00自動*//*数値*/フレックス:2; / * flex-grow(flex-basis grow at 0)* //*数値ではありません*/flex:10em; / *フレックスベース:10em * /フレックス:30px; / * flex-basis:30px * / flex:auto; / * flex-basis:auto * / flex:content; / * flex-basis:content * / flex:1 30px; /*flex-growおよびflex-basis*/ flex:2 2; / * flex-growおよびflex-shrink(0でのflex-basisジャンプ)* / flex:2 2 10%; /*flex-growおよびflex-shrinkおよびflex-basis*/ align-self:

フレーム付きアイテムに対してのみ、整列アイテムのパワーを変更できます。

通常:align-itemsコンテナとして

  • ストレッチ-要素は一列に一列に引き伸ばされます
  • フレックススタート-要素は行の穂軸に押し込まれます
  • フレックスエンド-要素が行の最後まで押されます
  • 中心-要素は行の中央に配置されます
  • ベースライン-要素はテキストのベースラインの後ろに配置されます

注文:

チェーン行の要素の順序(位置、キャンプ)を変更できます。

通常:順序:0

キャプションの後ろでは、要素は0の順序で並べられ、HTMLコードに表示される順序で直線的に配置されます。 また、順序パワー値を変更すると、要素は値の順序に配置されます:-1 0 1 23...。 たとえば、要素の1つにorder:1を指定すると、すべてゼロが最初になり、次に要素が1になります。

したがって、たとえば、他の要素やHTMLコードの動きを直接変更せずに、最初の要素をキネットにスローすることができます。

ノート

フレックスベースと幅の違いは何ですか?

以下は、フレックスベースと幅/高さの間の重要な詳細です。

    フレックスベースは、主軸に対してより実用的です。 これは、flex-direction:row flex-basisが幅(幅)を制御する場合、およびflex-direction:columnが高さを制御する場合を意味します。 。

    フレックスベースは、フレックス要素への停滞が少なくなります。 これは、コンテナでフレックスをオンにしても効果がないことを意味します。

    絶対コンテナ要素はフレックスコンストラクトに参加しません...また、絶対位置:絶対臭いのため、フレックスベースはフレックスコンテナ要素とオーバーラップしません。 幅/高さを指定する必要があります。

  • 可変フレックス3の値(フレックスグロー/フレックスシュリンク/フレックスベース)を組み合わせて短く書くことができ、幅の拡大または縮小にはオクレモを書く必要があります。 例:flex:0 0 50%== width:50%; flex-shrink:0; 。 時々それは便利ではありません。

可能であれば、それでもフレックスベースを優先します。 フレックスベースが合わない場合にのみ幅を変更してください。

Vidminnistフレックスベースvіd幅–バグカイ機能?

フレックス要素の中央にあるコンテンツは拡張可能であり、境界を超えることはできません。 ただし、フレックスベースではなく幅または最大幅で幅を設定すると、フレックスコンテナの中央にある要素がコンテナの中央からズームアウトします(ただし、この動作は必要です)。 お尻:

フレックスネスティングを適用する

バットには、ブラウザ間の互換性のためのプレフィックスがどこにもありません。 私は手動のCSS読み取りのためにそうしました。 残りの部分に驚嘆するために適用します ChromeのバージョンまたはFirefox。

#1縦横に揃えたシンプルなお尻

最も単純なバットから始めましょう-一度に垂直方向と水平方向の位置合わせを行い、ブロックの高さに関係なく、navithumovoyを使用します。

真ん中のテキスト

それ以外の場合は、中央にブロックがありません。

真ん中のテキスト

#1.2フレックスブロックの要素間のポッド(開いた)

エッジの周りのコンテナ要素を展開し、要素を十分に選択するには、展開した後、margin-left:autoまたはmargin-right:autoの累乗を変更する必要があります。

#2フレックスのレスポンシブメニュー

ページの最上部にあるZrobimoメニュー。 ワイドスクリーンでは、右利きにならざるを得ません。 真ん中を見てください。 そして、小さな革の要素に新しい列を作ることができます。

#3レスポンシブ3列

このお尻は、3列がどれだけ速く手動で鳴らされると、2列に変化してから1列に変化するかを示しています。

敬意を払ってください、勝利のメディアルールなしで何ができるか、すべてが柔軟です。

1
2
3
4
5
6

jsfiddle.netにアクセスして、「結果」セクションの幅を変更します

#4フレックスのレスポンシブブロック

大小2ブロックの3ブロックで入場できます。 必要なときはいつでも、ブロックは小さなスクリーンの下に置かれました。 ロビモ:

1
2
3

jsfiddle.netにアクセスして、「結果」セクションの幅を変更します

フレックスとトランジションに関する#5ギャラリー

このお尻は、フレックスの写真でどれだけ速く素敵なアコーディオンを作ることができるかを示しています。 フレックスのパワートランジションを尊重します。

#6フレックスyフレックス(お尻だけ)

Zavdannyazrobitignuchkiブロック。 したがって、皮膚のしみの穂軸のテキストは、水平方向に1行になりました。 トブト。 響きの幅で、ブロックは高さで成長します。 画像が上にあり、ボタンが下にあり、中央のテキストが1本の水平線に沿って始まる必要があります。

このタスクを完了するために、ブロック自体がフレックスで引き伸ばされ、可能な最大幅が設定されます。 Kozhen 室内機また、フレックスデザイン、回転ウェイトフレックス方向:カラム; 真ん中の要素(テキストが見つかる場所)はflex-grow:1を展開します。 空き領域全体を埋めて、結果に到達します。テキストは1行から始まります。

もっと適用する

ブラウザによるサポート-98.3%

繰り返しますが、健全な心はありませんでしたが、すべて 最新のブラウザフレックスボックス構造をトリミングします。 それ以外の場合は、プレフィックスを指定する必要があります。 実際の写真として、caniuse.comとbachimoを見てみましょう。プレフィックスなしで96.3%のブラウザが今日動作し、プレフィックスは98.3%です。 これは、フレックスボックスを大胆に誇示する方法のショーケースです。

知るために、今日(cherv。2019)に関連するプレフィックスは、次の場合の最適なフレックスルールを示します。 プレフィックスが必要:

/*コンテナ*/.flex(display:-webkit-box; display:-ms-flexbox; display:flex; display:-webkit-inline-box; display:-ms-inline-flexbox; display:inline-flex; -webkit-box-orient:vertical; -webkit-box-direction:normal; -ms-flex-direction:column; flex-direction:column; -ms-flex-wrap:wrap; flex-wrap:wrap; -flex -flow:column wrap; flex-flow:column wrap; -webkit-box-pack:justify; -ms-flex-pack:justify; justify-content:space-between; distribution; align-content:space-around;) /*アイテム*/.flex-item(-webkit-box-flex:1; -ms-flex-positive:1; flex-grow:1; -ms-flex-negative:2; flex-shrink:2;- ms-flex-preferred-size:100px; flex-basis:100px; -ms-flex:1 2 100px;:center; align-self:center; -webkit-box-ordinal-group:3; -ms-flex-注文:2;注文:2;

より簡単に言えば、プレフィックス付きの権限は元の権限に移動します。
このリストには、今日(caniuseから)必要のないプレフィックスはありませんが、さらに多くのプレフィックスがあります。

クロム サファリ Firefox オペラ IE アンドロイド iOS
20-(古い) 3.1+(旧) 2-21(旧) 10(トゥイナー) 2.1+(旧) 3.2+(旧)
21歳以上(新規) 6.1+(新規) 22歳以上(新規) 12.1+(新規) 11歳以上(新規) 4.4+(新規) 7.1以降(新規)
  • (新規)-新しい構文:display:flex; 。
  • (トゥイナー)-古い非公式の2011構文:display:flexbox; 。
  • (古い)-古い2009年のロック構文:表示:ボックス;

ビデオ

ええと、ビデオを忘れないでください。1時間、あなたが理解したことは明らかです。 人気のアクシスカップル:

Flexによるテキストメッセージ

    flexboxfroggy.com-flexboxホームページ。

    Flexplorerは、基本的なフレックスコードコンストラクターです。

そして、プルリクエストを送信してください。

最も極端な場合、作成者は、flexを次のいずれかの値に設定する必要があります:auto、initial、none、または正の単位なしの数値。 これらの値を取得するには、以下のフレックスコンテナを調整する必要があります。

自動
自動
自動
自動
イニシャル
イニシャル
自動
自動
無し
イニシャル
無し
無し
4
2
1
*(box-sizing:border-box;).flex-container(background-color:#F4F7F8; resize:horizo​​ntal; overlay:hidden; em; width:110px; min-width:0; background-color:#1B5385; color:white; font-family:monospace; font-size:13px;)。 ; ).none(flex:none;).four(flex:4;).two(flex:2;).one(flex:1;)

いずれにせよ、フレックスアイテムは最小コンテンツサイズを下回って縮小することはありません。

構文

/*キーワード値*/flex:auto; フレックス:初期; フレックス:なし / * 1つの値、単位のない数値:flex-grow * / flex:2; / * 1つの値、幅/高さ:フレックスベース* /フレックス:10em; フレックス:30% フレックス:最小コンテンツ; / * 2つの値:flex-grow | フレックスベース*/フレックス:1 30px; / * 2つの値:flex-grow | フレックスシュリンク*/flex:2 2; / * 3つの値:flex-grow | フレックスシュリンク| フレックスベース*/flex:2 2 10%; /*グローバル値*/flex:inherit; フレックス:初期; フレックス:未設定;

flexプロパティは、1つ、2つ、または3つの値を使用して指定できます。

initialアイテムは、幅と高さのプロパティに従ってサイズが変更されます。 これらのスタッドは、コンテナに合う最小サイズには成長しませんが、フレックスコンテナの余分な空きスペースを吸収するようには成長しません。 Zeは、「フレックス:01自動」を意味します。 自動サイズがサイズとハイパワーに結びついているが、成長するとフレックスコンテナ内の余分な空きスペースを吸収し、コンテナに合うように最小サイズに縮小する位置。 Zeの意味:「フレックス:11オート」。 無しアイテムのサイズは、幅と高さのプロパティに応じて決まります。 それは完全に柔軟性がありません:それはフレックスコンテナに対して収縮も成長もしません。 Zeは、「フレックス:00自動」を意味します。 "name ="%7B%LS%7D "flex-grow">"><"flex-grow">フレックスグローを定義します "name ="%7B%LS%7D "flex-shrink">"> "><"flex-shrink">フレックスアイテムのフレックスシュリンクを定義します。 p align="justify">負の値は無効と見なされます。 省略した場合、デフォルトは1です。 "name ="%7B%LS%7D "flex-basis">"> "><"flex-basis">フレックスアイテムのフレックスベースを定義します。 柔軟性として解釈されないように、推奨サイズ0は単位を持っている必要があります。 省略した場合、デフォルトは0です。

正式な構文

なし"><"flex-grow"> "><"flex-shrink"> "><"flex-basis">

#flex-container(display:flex; flex-direction:row;)#flex-container> .flex-item(flex:auto;)#flex-container> .raw-item(width:5rem;)
フレックスボックス(クリックしてrawボックスを切り替えます)
生箱

var flex = document.getElementById( "flex"); var raw = document.getElementById( "raw"); flex.addEventListener( "click"、function()(raw.style.display = raw.style.display == "none"? "block": "none";)); #flex-container(width:100%; font-family:Consolas、Arial、sans-serif;)#flex-container> div(border:1px solid#f00; padding:1rem;)#flex-container> .raw- item(border:1px solid#000;)

結果

仕様

仕様 状態 コメント
CSSフレキシブルボックスレイアウトモジュール
その仕様における「フレックス」の定義。
候補者の推奨 初期定義
初期値
に適用されますインフロー疑似要素を含むフレックスアイテム
遺伝性のいいえ
メディアビジュアル
計算値速記の各プロパティとして:
  • flex-grow:指定どおり
  • フレックスシュリンク:指定どおり
  • flex-basis:指定どおりですが、相対的な長さは絶対的な長さに変換されます
アニメーションタイプ速記の各プロパティとして:
  • flex-grow:実際の浮動小数点数として補間されたCSSデータ型є。">数値
  • flex-shrink:実数、浮動小数点、数値として補間されたCSSデータ型。">数値
  • flex-basis:CSSデータ型єは実数の浮動小数点数として補間されます。 ">長さ、CSSデータ型は実数の浮動小数点数として補間されます。">パーセンテージまたはcalc();
正規の順序値の形式文法における出現順序

ブラウザの互換性

この側のテーブルのコンパクトさは、構造化データから生成されます。 データについて知りたい場合は、https://github.com/mdn/browser-compat-dataをクリックして、プルリクエストを送信してください。

GitHubの互換性データを更新します

デスクトップモバイル
クロムFirefoxインターネットエクスプローラオペラサファリandroid webviewChrome for AndroidAndroid版FirefoxAndroid用OperaiOS上のSafariサムスンインターネット
フレックスChromeフルサポート29フルサポート29フルサポート21

プレフィックス

プレフィックス
エッジフルサポート12フルサポート12フルサポート12

プレフィックス

プレフィックス ベンダープレフィックスで実装:-webkit-
Firefoxフルサポート20

ノート

フルサポート20

ノート

ノート Firefox 28以降、複数行のフレックスボックスがサポートされています。 ノート Firefox 32より前は、Firefoxは0で開始または停止する値をアニメーション化できませんでした。 Firefox 61までは、max-contentではなくfit-contentのアイテムを変更してください。 サポートなし18-28

無効

無効 バージョン18からバージョン28(排他的)まで:この機能は、layout.css.flexbox.enabledプリファレンスの背後にあります(trueに設定する必要があります)。 Firefoxで設定を変更するには、about:configにアクセスしてください。 フルサポート49

プレフィックス

プレフィックス ベンダープレフィックスで実装:-webkit-フルサポート48

プレフィックス 無効

プレフィックス ベンダープレフィックスで実装:-webkit-無効 Wバージョン48:この記事は時間layout.css.prefixes.webkit設定です(trueに設定する必要があります)。 Firefoxで設定を変更するには、about:configにアクセスしてください。
IEフルサポート11

ノート

フルサポート11

ノート

ノート Internet Explorer 11は、flex構文のflex-basis部分の使用を無視します。 Tse mozhe buti zrobleneは、ショーツで回復する待望のパワーの助けを借りて。 詳細については、Flexbug#8を参照してください。 ノート Internet Explorer 11は、フレックスベースの部分で値が構文的に無効であると見なし、構文的に無効であると見なします(したがって無視されます)。 フレックスベースのフレックス省略値の一部を含むすべてを覚えておいてください。 詳細については、Flexbug#4を参照してください。 フルサポート10

©2022androidas.ru-Androidのすべて