Master Flexbox: Unlock Effortless Responsive Web Design

フレキシブルボックスレイアウト(Flexbox):CSSレイアウトを効率化するための究極ガイド。強力で直感的なツールを駆使して、レスポンシブウェブデザインをどのように革新するかを発見しよう。

Flexboxの紹介:起源と基本概念

フレキシブルボックスレイアウトは、一般にFlexboxとして知られるCSS3のウェブレイアウトモデルで、コンテナ内のアイテムをより効率的に配置、整列、空間を分配する方法を提供するように設計されています。特にサイズが不明または動的な場合でも機能します。Flexboxは、レスポンシブで柔軟なデザインを実現するために、古典的なレイアウト手法(例えばフロート、テーブル、インラインブロック)の制限に対処するために導入されました。Flexboxの仕様は、ウェブ全体の国際標準組織であるW3Cによって開発されました。

Flexboxの起源は2010年代初頭に遡ります。ウェブ開発者は、レスポンシブインターフェイスを構築するためのより堅牢なツールを求めていました。W3Cは、さまざまな画面サイズやデバイスに適応するレイアウトを作成するプロセスを簡素化するためにFlexbox仕様の草案を作成し始めました。FlexboxはCSS3スイートに正式に含まれ、以降その実装はすべての主要なウェブブラウザで標準機能となることが確認されています。MozillaChromium、それぞれFirefoxとChromeの背後にいる組織です。

Flexboxは、本質的にはコンテナとその子のための新しいレイアウトコンテキストを導入します。要素のdisplayプロパティがflexまたはinline-flexに設定されると、その要素はフレックスコンテナとなり、直接の子はフレックスアイテムになります。フレックスコンテナは、メイン軸(flex-directionプロパティに応じて水平または垂直)とクロス軸(メイン軸に垂直)に沿った強力な整列と分配機能を可能にします。この二軸モデルは、アイテムの配置を柔軟にし、順序を逆転させ、複数行にアイテムをラップさせ、justify-contentalign-itemsalign-contentなどのプロパティで間隔を制御する能力を提供します。

Flexboxの基本概念には、flex-growflex-shrinkflex-basisプロパティを使用してフレックスアイテムの成長、縮小、基準サイズを制御する機能が含まれます。これにより、アイテムは利用可能なスペースを埋めるために自動的にサイズを調整し、ビューポートや内容の変化に関係なく比例的にバランスを保つことができます。このモデルは、以前のCSS技術では非常に困難だった縦横のセンタリングも簡素化します。

現在、Flexboxは現代ウェブデザインにおける基盤的なツールと見なされており、開発者は異なるプラットフォームでレスポンシブでアクセス可能、視覚的に一貫したインターフェイスを構築できるようにしています。その採用と、W3Cのようなブラウザベンダーや標準団体からの継続的なサポートは、ウェブ技術の進化する環境においてその重要性を確保しています。

フレックスコンテナとフレックスアイテムの理解

フレキシブルボックスレイアウト(Flexbox)は、コンテナ内のアイテムを効率的に配置、整列、分配するためのCSS3のウェブレイアウトモデルです。Flexboxの核心には、フレックスコンテナフレックスアイテムという2つの基本概念があります。これらを理解することは、レスポンシブウェブデザインにおけるFlexboxの真の力を引き出すために不可欠です。

フレックスコンテナは、display: flexまたはdisplay: inline-flexプロパティが適用される任意のHTML要素です。この宣言により、その直接の子供たちに新しいフレックスフォーマットコンテキストが確立され、その結果、これらの子供たちはフレックスアイテムになります。フレックスコンテナは、メイン軸(flex-directionプロパティに応じて、水平または垂直)とクロス軸(メイン軸に対して直角)に沿ったフレックスアイテムの流れと整列を制御します。

フレックスコンテナは、その子供たちの動作を規定するいくつかのプロパティを導入しています。例えば、justify-contentはメイン軸に沿ったフレックスアイテムの整列を管理し、align-itemsalign-contentはクロス軸に沿った整列を制御します。また、flex-wrapプロパティにより、アイテムが複数行にラップすることができ、特にレスポンシブデザインにおいてレイアウトの柔軟性が向上します。

フレックスコンテナの各直接の子供は自動的にフレックスアイテムとなります。フレックスアイテムは、flex-growflex-shrinkflex-basisのようなプロパティを使用して個別に制御され、これによりフレックスアイテムが他のアイテムに対してどのように成長または縮小するか、または利用可能なスペースに応じて基準サイズを設定できます。これにより、開発者は多くのコードを使わずに複雑なレイアウトを作成できます。

Flexboxモデルはすべての主要なブラウザで広くサポートされており、現代のウェブ開発において信頼できる選択肢となっています。仕様は、ウェブ全体の国際標準組織であるW3Cによって維持されており、Mozilla FoundationWebKitプロジェクトも包括的な文書と実装の詳細を提供し、プラットフォーム間での一貫性を保証しています。

まとめると、フレックスコンテナとそのフレックスアイテムとの関係はFlexboxにおける基盤であり、コンテナがコンテキストをどのように確立し、アイテムがコンテナプロパティにどのように反応するかを理解することで、開発者は異なる画面サイズやコンテンツの変動に適応したロバストで柔軟なレイアウトを作成できるようになります。

軸の基本:メイン軸vs.クロス軸

フレキシブルボックスレイアウト(Flexbox)の理解における核心概念は、メイン軸クロス軸の区別です。これらの軸は、フレックスコンテナ内のアイテムがどのように配置され、整列されるかの基礎を形成し、開発者にレスポンシブでダイナミックなレイアウトを作成するための強力なツールを提供します。

メイン軸は、フレックスコンテナのflex-directionプロパティによって定義されます。デフォルトでは、この軸は左から右に水平に走ります(row)が、垂直に走らせたり(column)、逆方向に変更したり(row-reversecolumn-reverse)できます。すべてのフレックスアイテムはこのメイン軸に沿って配置され、justify-contentのようなプロパティがその整列と分配を制御します。

メイン軸に対して直角であるのがクロス軸です。メイン軸が水平であれば、クロス軸は垂直になり、その逆も同様です。クロス軸は、アイテムがメイン軸と直交する方向で整列される方法を制御するために重要であり、align-itemsalign-contentのようなプロパティを使用します。この軸の分離は、コンテナ内のコンテンツの主要フローと二次的な整列の両方を細かく制御できるようにします。

例えば、フレックスコンテナがflex-direction: rowを持っている場合、メイン軸は左から右に走り、クロス軸は上から下に走ります。flex-direction: columnが設定されると、メイン軸が上から下に、クロス軸は左から右になります。この柔軟性がFlexboxにその名と力を与え、異なる画面サイズやコンテンツのニーズに対応した適応可能なレイアウトを作成します。

これらの軸の違いは単なる理論的なものではなく、他のFlexboxプロパティの動作に直接影響します。例えば、flex-growflex-shrinkflex-basisはすべてメイン軸に沿って動作し、アイテムがどのように拡大、収縮、またはサイズ指定されるかを決定します。一方、align-selfalign-itemsのような整列プロパティはクロス軸に沿って動作し、コンテナ内の個別またはグループの整列を可能にします。

フレキシブルボックスレイアウト(Flexbox)の公式仕様は、ウェブの主要な国際標準組織であるW3Cによって維持されています。彼らの文書には、メイン軸とクロス軸の関係、さらにはこれらの軸に関するさまざまなFlexboxプロパティの動作を示す詳細な定義や図が提供されています。

メイン軸とクロス軸を理解することは、Flexboxのすべての機能を活用するために不可欠であり、開発者がさまざまなデバイスや画面サイズでロバストで柔軟、かつ視覚的に一貫したレイアウトを作成できるようにします。

フレックスプロパティの習得:フレックスグロウ、フレックスシュリンク、フレックスベーシス

フレキシブルボックスレイアウト(Flexbox)は、CSS3のウェブレイアウトモデルであり、コンテナ内のアイテムを効率的に分配し、整列させる方法を提供します。Flexboxの習得において中心となるのは、その核心プロパティ:flex-growflex-shrinkflex-basisです。これらのプロパティは、合わせてflexのショートハンドとして知られています。これらはフレックスアイテムが、フレックスコンテナの中でどのように拡大し、収縮し、初期サイズを確立するかを制御します。

flex-growプロパティは、同じコンテナ内のフレックスアイテムがどれくらい成長するかを定義します。すべてのアイテムがflex-growの値を1に設定している場合、利用可能なスペースは均等に共有されます。1つのアイテムが値2を持ち、他が1である場合、そのアイテムは他のアイテムの2倍のスペースを占めることになります。この比例分配はレスポンシブレイアウトにとって不可欠であり、デザイナーがさまざまな画面サイズにスムーズに適応するインターフェースを作成できるようにします。

逆に、flex-shrinkは、コンテナ内のスペースが不足しているときにフレックスアイテムがどれくらい収縮するかを制御します。値が0の場合は収縮を防ぎ、高い値を設定するとアイテムはより収縮します。このプロパティは、ビューポートが縮小されたときに重要なインターフェース要素の使いやすさを維持するために特に便利です。

flex-basisプロパティは、フレックスアイテムの初期メインサイズを設定します。利用可能なスペースがflex-growおよびflex-shrinkに従って分配される前のサイズです。特定の長さ(例:200px)またはauto(アイテムの固有のサイズを使用)に設定できます。flex-basisを調整することで、開発者は各アイテムのサイズの出発点を設定でき、その後、成長および縮小因子に応じて修正可能です。

これらのプロパティはしばしばflexのショートハンドを使用して組み合わされます(例:flex: 1 0 200px;)。これにより、flex-growflex-shrinkflex-basisを1つの宣言で設定できます。これらのプロパティを習得することで、開発者は最小限のコードで複雑で適応可能なレイアウトを作成できるようになります。Flexboxの仕様は、ウェブの主要な国際標準組織であるW3Cによって維持されており、広範なブラウザサポートと継続的な改善が保証されています。

さらに技術的な詳細や最新のブラウザ互換性については、ウェブ標準やオープンソースのウェブ技術における主要な権威であるMozilla Foundationの公式文書を参照することができます。

アライメントと整列:アイテムの配置を制御する

フレキシブルボックスレイアウト(Flexbox)は、アイテムをコンテナ内で効率的に配置、整列、空間を分配するためのCSSモジュールです。Flexboxの強みの1つは、強力な整列と整列のシステムであり、これにより開発者はフレックスコンテナのメイン軸とクロス軸の両方に沿ったアイテムの配置を制御できます。

Flexboxは、整列と整列を制御するいくつかのプロパティを導入します。justify-contentプロパティはメイン軸(flex-directionに応じて水平または垂直)に沿ったアイテムの整列を管理します。このプロパティは、flex-startflex-endcenterspace-betweenspace-aroundspace-evenlyなどの値を受け入れ、フレックスアイテム間および周囲の空間の分配を正確に制御します。例えば、justify-content: centerはコンテナ内のすべてのアイテムを中央に整列させ、space-betweenは最初のアイテムを先頭に、最後のアイテムを最後に配置し、残りのアイテムを均等に分配します。

クロス軸では、align-itemsプロパティがフレックスコンテナ内でのアイテムの整列方法を決定します。選択肢には、stretch(デフォルト)、flex-startflex-endcenterbaselineがあります。これにより、行ベースのフレックスコンテナ内での縦の整列または列ベースの場合の横の整列が可能になります。また、個々のフレックスアイテムに対してalign-selfプロパティを適用することで、特定の要素に対してコンテナのalign-itemsの設定を上書きできます。

複数行のフレックスコンテナの場合、align-contentプロパティが作用し、コンテナ内のフレックスラインの整列を制御します。これは、flex-wrapでラップが有効な場合、アイテムの行や列の縦の間隔や整列を可能にするために特に便利です。

Flexboxの仕様は、ウェブの主要な国際標準組織であるW3Cによって維持されています。W3Cは、Flexboxモジュールの公式文書および継続的な更新を提供し、ブラウザ間の相互運用性と一貫性を確保しています。Mozilla(Firefox)、Google(Chrome)、Apple(Safari)などの主要ベンダーによる現代的なブラウザは、Flexboxを広範囲にサポートしており、開発者に利用可能な整列と整列の機能を提供しています。

要約すると、Flexboxの整列および整列プロパティは、コンテナ内のアイテムの配置を制御するための強力で直感的なシステムを提供し、レスポンシブでダイナミックなウェブレイアウトを大幅に簡素化します。

Flexboxを用いたレスポンシブデザイン:ベストプラクティス

フレキシブルボックスレイアウト(Flexbox)は、CSS3のウェブレイアウトモデルで、コンテナ内のアイテムを配置、整列、分配するより効率的な方法を提供します。Flexboxは、レスポンシブデザインに特に適しており、開発者が異なる画面サイズやデバイスの向きに優雅に対応する柔軟で適応可能なレイアウトを作成できるようにします。Flexboxの仕様は、ウェブ全体の国際標準組織であるW3Cによって維持されています。

Flexboxは、メイン軸(flex-directionプロパティで定義される)とクロス軸(メイン軸に対して垂直)という2つの主要な軸に基づいて動作します。このモデルは、開発者がコンテナ内の要素の整列、方向、順序を制御できるようにし、フロートや位置調整に頼ることなく複雑なレイアウトを構築しやすくします。justify-contentalign-itemsflex-wrapなどの主要なプロパティは、子要素の分配と整列を細かく制御します。

レスポンシブデザインのために、Flexboxは以下のようなベストプラクティスを提供します:

  • flex-wrapを使用した複数行レイアウト:デフォルトでは、Flexboxはアイテムを単一行に配置します。flex-wrap: wrap;を設定することで、アイテムが複数行に流れることができ、小さな画面に適応するのに不可欠です。
  • flex-basisflex-growflex-shrinkを活用:これらのプロパティは、アイテムの柔軟なサイズ設定を可能にし、利用可能なスペースに応じて成長、縮小、または基本サイズを維持できます。
  • メディアクエリとの組み合わせ:Flexboxがレイアウトを処理する一方で、メディアクエリ(W3Cによって定義された)を使用することで、異なるブレークポイントでのさらなるカスタマイズが可能となり、デバイス間での最適な表示を保証します。
  • orderを使用した視覚的な再配置:orderプロパティにより、開発者はHTML構造を変更することなく要素の視覚順序を変えることができ、アクセシビリティやレスポンシブ再配置に役立ちます。
  • ブラウザ間のテスト:Flexboxは現代のブラウザで広くサポートされていますが、開発者はMozillaChromium Projectsなどのブラウザベンダーが提供する互換性表を参照して、一貫した動作を確認すべきです。

これらのベストプラクティスに従うことで、開発者はFlexboxの力を活用して、レスポンシブでメンテナブル、アクセス可能なウェブレイアウトを作成することができます。W3Cのような団体によって導かれるCSS標準の進化は、Flexboxが現代のウェブデザインにおける基礎的なツールであり続けることを保証します。

一般的なFlexboxパターンとレイアウトレシピ

フレキシブルボックスレイアウト(Flexbox)は、アイテムをコンテナ内で効率的に配置、整列、分配するためのCSSモジュールであり、特にサイズが不明または動的な場合に機能します。Flexboxは、最小限のコードで複雑なレイアウトを作成するのが得意であり、現代のレスポンシブウェブデザインの重要な要素となっています。その核心原理は、コンテナ要素(フレックスコンテナ)が、利用可能なスペースを最も効率的に満たすように子要素(フレックスアイテム)の幅、高さ、順序を変更できるようにすることです。この適応性は、さまざまなデバイスや画面サイズで動作するインターフェイスを構築する際に特に有用です。

Flexboxを使用する際の一般的なレイアウトパターンやレシピがいくつか存在します。最も一般的なものの一つは水平ナビゲーションバーです。ナビゲーションコンテナにdisplay: flex;を設定し、justify-content: space-between;space-around;のようなプロパティを使用することで、ナビゲーションリンクを均等に分配し、全デバイスでアクセスでき、視覚的にもバランスの取れた状態を保つことができます。

もう一つ広く使われているパターンはコンテンツの垂直センタリングです。以前のCSS技術では難しかったこの手法も、Flexboxによって、align-items: center;justify-content: center;を使用することで、水平および垂直の整列が可能になります。これは、ヒーローセクションやモーダル、あるいは親内でコンテンツを完璧に中央に配置する必要があるシナリオに特に便利です。

ホーリーグレイルレイアウト—ヘッダー、フッター、3つのカラム(中央は柔軟、側面は固定幅の仕様)からなる古典的なウェブデザインパターンも、Flexboxで容易に実現できます。フレックスコンテナをネストし、メインコンテンツに対してflex: 1;、サイドバーにはflex: 0 0 200px;といったプロパティを使用することで、浮動や複雑な位置調整に頼らずに頑健でレスポンシブなレイアウトを作成できます。

Flexboxはまた、カードベースのデザインやグリッドで一般的な要件である等高のカラムにも最適です。デフォルトでは、フレックスアイテムは行内の最も高いアイテムに合わせて高さを伸ばすため、追加のスクリプトやハックなしで視覚的一貫性が保証されます。

コンテンツのラップと再配置について、Flexboxはflex-wrapプロパティを提供し、アイテムが必要に応じて新しい行に移動できるようにし、orderプロパティは、基盤となるHTMLを変更することなく要素の視覚的順序を変えることを可能にします。これは、レスポンシブデザインにおいて、レイアウトが異なる画面サイズや向きに適応する必要がある場合に特に価値があります。

これらのパターンは、Flexboxの公式仕様を維持する世界広域ウェブコンソーシアム(W3C)や、主要なブラウザベンダーであるMozillaGoogleとの間で、広く文書化され推奨されています。これにより、Flexboxはウェブ開発者にとって信頼できる選択肢であり続けます。

FlexboxとCSSグリッド:それぞれを使用する際のタイミングと理由

フレキシブルボックスレイアウト(Flexbox)は、CSSモジュールであり、アイテムをコンテナ内で配置、整列、空間を分配するより効率的な方法を提供します。Flexboxは、一方向のレイアウトに特に適しており、アイテムが単一の行や列に配置される場合の最適なツールです。その主な目的は、親コンテナ内で要素の整列、方向、順序に対して柔軟性と制御を提供し、レスポンシブウェブデザインの強力なツールです。

Flexboxは、メイン軸(flex-directionプロパティによって水平または垂直)とクロス軸(メイン軸に対して直角)という2つの主要な軸に基づいて動作します。これにより、開発者はどちらの軸に沿ってもアイテムを簡単に整列させたり、間隔を管理したり、自由なスペースの分配を制御したりできます。justify-contentalign-itemsflex-wrapなどの主要なプロパティは、子要素の動作を正確に制御します。

Flexboxのコアな強みは、ダイナミックなコンテンツやさまざまなアイテムサイズを扱える点で、複雑な計算やフロートを必要としません。例えば、ナビゲーションバーやツールバー、アイテムを均等に間隔をとったり、特定の方法で整列させたりするリストの構築において、Flexboxはシンプルな解決策を提供します。また、視覚的に整列させたり、コンテンツを中央に配置したり、アイテムの順序を変更したりするプロセスを簡素化します。

Flexboxは、MozillaGoogleAppleMicrosoftなどの主要なブラウザでサポートされており、この広範なサポートはFlexboxを使用して構築されたレイアウトが、さまざまなプラットフォームやデバイスで信頼性が高く一貫していることを保証します。仕様は、ウェブ全体の国際標準组织であるW3Cによって維持されており、継続的な改善と互換性が確保されています。

要約すると、Flexboxは、アイテムを行や列に整列させたり、動的に自由なスペースを配分したり、要素の順序と整列をコンテナ内で管理する必要があるシナリオに最適です。その直感的な構文と堅牢なブラウザサポートは、現代のウェブ開発における基礎的なツールであり、特にレスポンシブで適応可能なインターフェースにおいて重要です。

Flexboxのトラブルシューティング:一般的な落とし穴と解決策

フレキシブルボックスレイアウト(Flexbox)は、アイテムをコンテナ内で効率的に配置、整列、分配するための強力なCSSモジュールです。Flexboxは多くのレイアウトの課題を簡素化しますが、開発者はしばしば予期しない結果につながる特定の落とし穴に遭遇します。これら一般的な問題を理解し、その解決策を知ることは、Flexboxを効果的に活用するために不可欠です。

1. フレックスコンテナの崩壊
フレックスコンテナが高さゼロに見え、その背景や境界が消えてしまうという問題が頻繁に発生します。これは通常、デフォルトでは、フレックスコンテナはそのフレックスアイテムに合わせて伸びるため、アイテム自体に高さがない場合コンテナが崩れてしまうためです。この問題を解決するには、アイテムに定義された高さがあることを確認するか、align-items: stretchのようなプロパティを使用してアイテムがコンテナのクロス軸を満たすようにします。

2. オーバーフローと収縮するアイテム
Flexアイテムは、コンテンツが利用可能なスペースよりも大きい場合、予想外に収縮したりオーバーフローしたりすることがあります。デフォルトでは、flex-shrink: 1はアイテムをコンテナに合わせて収縮させるため、収縮を防ぎたい場合は対象アイテムにflex-shrink: 0を設定します。さらに、min-widthmin-heightを使用して最小サイズを維持し、オーバーフローを防ぐことができます。

3. 一貫しない整列
整列の問題は、align-items(クロス軸沿いに整列)とjustify-content(メイン軸沿いに整列)の違いを理解していないことから生じることが多いです。フレックスの方向を再確認し、希望する整列のために正しいプロパティを使用してください。W3Cは、CSS Flexbox仕様を維持しており、これらのプロパティの詳細な説明を提供しています。

4. フレックスボックスとマージン
特に自動マージンに関しては、Flexbox内で動作する方法が異なります。例えば、フレックスアイテムにmargin: autoを設定すると、コンテナの片側に押しやるのに使用できます。ただし、自動マージンと特定の整列プロパティを組み合わせると、予期しないレイアウトが生じることがあります。Flexboxでのマージンの使用に関するベストプラクティスについては、Mozilla Foundationの文書を参照してください。

5. ブラウザ互換性
現代のブラウザはFlexboxを大規模にサポートしていますが、特に古いバージョンでは微妙な違いやバグが存在することがあります。常にブラウザ間でレイアウトをテストし、Can I useプロジェクトの提供する互換性表を参照することが重要です。

これらの一般的なFlexboxの落とし穴とその解決策を意識することで、開発者はより信頼性の高いレスポンシブなレイアウトを作成できます。正式なガイダンスについては、常にWorld Wide Web Consortium (W3C)Mozilla Foundationの公式文書を参照してください。

Flexboxの未来:進化する標準と高度な技術

フレキシブルボックスレイアウト(Flexbox)は、現代のウェブデザインの重要な基盤となり、開発者に対してレスポンシブなレイアウトを簡単に作成するための強力で直感的な手段を提供しています。ウェブ技術が進化し続ける中、Flexboxの未来は、継続的な標準化、ブラウザの向上、Flexboxの基盤上に構築された高度なレイアウト手法の出現によって形成されています。

Flexboxは、World Wide Web Consortium (W3C)によって公式にCSSモジュールとして導入されました。その主な目的は、ブロックやインラインなどの従来のレイアウトモデルの制限に対処し、アイテムの分配と整列をより効率的に行う方法を提供することでした。標準化以来、すべての主要なブラウザがFlexboxに対して堅実なサポートを実装し、プラットフォーム間での一貫した動作が保証されています (MozillaGoogle)。

今後、Flexboxの進化はCSSレイアウトモジュールのより広範な開発と密接に結びついています。W3Cは引き続きFlexboxの仕様を改良し、例外ケースや相互運用性の問題に対処しています。最近のアップデートでは、固有のサイズや整列の取り扱いが明確化され、Flexboxはさらに予測可能で信頼性の高い複雑なレイアウトができるようになっています。また、Google(Chromeを通じて)やMozilla(Firefoxを通じて)などのブラウザベンダーは、新機能の実装やテストに積極的に参加し、Flexboxが開発者にとって一級品のツールであり続けるようにしています。

高度な技術も登場しており、開発者はFlexboxをGrid LayoutやContainer Queriesなどの他のCSSモジュールと組み合わせています。Flexboxは一方向のレイアウト(行か列のいずれか)で優れた機能を発揮し、CSS Gridは二次元的な制御を提供します。これにより、高度に洗練されたレスポンシブデザインが可能になります。Flexboxでのgapの導入は、以前はGridに特有の機能でしたが、この融合を示し、レイアウトの柔軟性を高めます。さらに、W3Cによるコンテナクエリに関する進行中の作業は、Flexboxベースのコンポーネントをさまざまなコンテキストや画面サイズにさらに適応できるようにすることを約束しています。

要約すると、Flexboxの未来は継続的な標準化、ブラウザサポートの向上、高度なCSS技術の統合に特徴づけられながら、開発者のツールキットの重要な部分であり続けます。新しいレイアウトパラダイムやユーザーエクスペリエンスの要求に応じて進化します。

出典と参考文献

Master Flexbox: Simplifying Layouts in CSS

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です