Flexboxはご存知でしょうか。

Fexboxはサイズが動的なデータの場合でも、コンテナー内のより効率的なレイアウト、配置、およびアイテムとスペースの分配の提供を目的としています。Flexboxは柔軟性があり、フロートやpositionを使用せずにレスポンシブレイアウトを簡単に設計できます。

  • 水平方向の位置のあるテキスト、コンテンツのブロックと別のブロックを中央に整列させる必要がある
  • 中央に整列のためCSSトリックを利用するが、全画面または動的データが表示されない状態になる
  • サードパーティのライブラリを利用せずに、レスポンシブインターフェースの設計が大変

など、FexboxならPhotoshopから画像を書き出す際に起こりがちな問題を解決することができますよ。

  • IT人材が不足している事業者様
  • floatを使用したレイアウトを行っていた方
  • Flexbox について詳しく知りたい方

これらに当てはまる方におすすめの記事となっています。これを読めばFlexboxの使い方や概要を知ることができます。

Flexbox CSSとは?

これはCSS3のモジュールの一つであり、あらゆるデバイスに表示され、柔軟に直感的なレイアウトを作成できるよう、内部要素を自動的にスケーリングするWebレイアウトモデルです。

Flexboxは、サイズや距離も含めて、コンテナーのアイテムを均等に分散する方法をコンテナーに決定させます。

Flexboxは多くのサイトにて利用されています( Bootstrap3のfloatに代わり、Bootstrap4もFlexboxを利用してグリッドシステムを構築しています)。

Flexboxは、純粋なCSSの問題を取り除くのに役に立つことが見込まれています。ただし、この新しいモデルを慣れるのは簡単なことではありません。

Flexboxの構造

Flexboxについて詳しく説明する前に、Flexboxの構造を簡単に確認する必要があります。 以下にはFlexboxの構造図です。

Flexbox構造には、コンテナーとアイテムの2つのコンポーネントがあります。

コンテナー

内部の要素を囲む大きなコンポーネントです

アイテム

コンテナーの子要素はアイテムと呼ばれます。

アイテムでは、コンテナーで使用する列の数を設定したり、表示順序を設定したりできます。

Flexboxの概念

Flexbox構造の中では、以下にいくつか概念を理解する必要があります。

Main start と Main end

Flexboxを設定する際に、コンテナーの開始点はメインスタートで、終点はメインエンドと呼ばれます。

つまり、内部のアイテムはメインスタートからメインエンドまで表示されます(またはメインエンドまで表示できます)。

そして、その垂直寸法のクロススタート、クロスエンドは同じ意味ですが、常にメインスタート、メインエンドに垂直となります。

Main axis

Main axisは、アイテムの表示方法を制御する主軸です。

Main size

Main sizeはmain axisに基づくアイテムのサイズです。

Cross axis

Main axisに似ているが、ain axisに垂直です。

Cross size

cross axisに基づくアイテムのサイズです。

Flexboxコンテナーと属性

Flexboxコンテナーは最も外側の要素であり、内部に子アイテム(Flex items)を含みます。

この要素では、プロパティdisplay:flex:、またはdisplay:inline-flexを設定する必要となります。

そこでは、下記のプロパティを使用してFlex itemsのレイアウトを構成します。

flex-direction

row | row-reverse | column | column-reverse;main axisを設定します。デフォルトがrowであり、ほとんどの場合にはrowにします(フレックスアイテムが水平行にあります)。

flex-wrap

nowrap | wrap | wrap-reverse; フレックスアイテムの幅を設定する時、この属性として、コンテナーの幅を超えた場合にフレックスアイテムを改行にするかどうかを指定します。

デフォルトは改行にします(nowrap)

Flex-flow  [flex-direction] [flex-wrap]

Flex-flow は、上記の2つの属性を組み合わせたものです。

justify-content

flex-start | flex-end | center | space-between | space-around | space-evenly | start | end | left | right … + safe | unsafe; main axis(主軸)に従ってフレックスアイテムの配置として設定されます。

align-items

stretch | flex-start | flex-end | center | baseline | first baseline | last baseline | start | end | self-start | self-end + … safe | unsafe;cross axis(交差軸)に従ってフレックスアイテムの配置として設定されます。

align-content

flex-start | flex-end | center | space-between | space-around | space-evenly | stretch | start | end | baseline | first baseline | last baseline + … safe | unsafe; cross axis(交差軸)に従ってフレックスアイテムの配置として設定されます。

Flex itemsと属性

親タグがFlexboxコンテナであるエレメントは、Flex itemsとして扱われます。

Flex itemsには、コンテナー内の独自のサイズと位置をカスタマイズできるように下記のプロパティがあります。

  • flex-grow: number; /* default 0 */コンテナー内でのアイテムスペースを設定します。
  • flex-shrink: number; /* default 1 */ コンテナーの収縮に従ってアイテムの縮小係数を設定します
  • flex-basis: number| auto; /* default auto */ アイテムのサイズが設定されます。
  • flex: none | [ <‘flex-grow’> <‘flex-shrink’>? || <‘flex-basis’> ] 上記の3つの属性の省略形です。
  • order: number; /* default is 0 */ コンテナー内のアイテムの位置が設定されます。
  • align-self: auto | flex-start | flex-end | center | baseline | stretch;cross axisに従ってアイテムの配置が設定されます。この属性はalign-itemsをオーバーライドにします。

結論

CSSのFlexboxは、floatを使用した通常のレイアウトを変える非常に便利なページレイアウトカスタマイズの1つであると言えます。

floatの不要な使用を最小限に抑えるため、サイトの小さな要素のレイアウトに適しています。

Mozilla Firefoxから推奨設定によると、Flexboxを使用して小さな領域(サイトのフレームなど)にレイアウトを設定します。

より大きなスケール(サイトの列など)にレイアウトを設定する際には、CSS Grid LayoutはCSSの中ですでに一番強力なイアウトシステムと言えます。これは2次元システムです。

つまり、一方向のシステムであるFlexboxとは異なり、列と行の両方を処理できます。

Flexboxの概要を紹介しました。 Flexboxは使いやすいと言えますが、習得するには多くの練習が必要です。

=>  Flexboxを学ぶための楽しいゲームを皆さんに紹介します

dehaでは、5年ほど前から、ベトナムオフショア開発を行っています。

ベトナムでオフショア開発を行う際の費用や、エンジニアの質を知りたい方は、無料で見積もりいたしますので、お気軽にお問い合わせください。

お問い合わせはこちらから

Mai Tran

Recent Posts

システム開発のライフサイクルとは?主要な開発フェーズと代表なモデルを解説

ビジネスや社会のあらゆる場面でシステムが欠かせない現代において、システム開発を効率的かつ確実に進めるための枠組みとして「システム開発ライフサイクル(SDLC:System Development Life Cycle)」が存在します。 SDLCは、システムを企画・開発・運用・保守するまでの一連の流れを定義したもので、開発プロジェクトを成功させるための道しるべといえます。 この記事では、システム開発ライフサイクルの基本的な考え方と、主要な開発フェーズ、さらに代表的な開発モデルについて解説します。 システム開発を発注・管理する立場の方 IT人材が不足している方 システム開発ライフサイクルの具体的内容が知りたい方 これらに当てはまる方におすすめの記事となっています。これを読めばシステム開発を効率的に進める方法が丸わかりですよ。 (more…)

5 days ago

システム保守の費用相場は?費用を抑えるポイントも徹底解説

システム開発が完了した後、安定して稼働させるためには「システム保守」が欠かせません。 しかし実際に見積もりを取ると、費用が高いと感じる企業も多いのではないでしょうか。 この記事では、システム保守の費用相場を解説するとともに、コストを抑えるための具体的な方法を徹底的に紹介します。 これから保守契約を検討する方 すでに保守契約しているが見直したい方 システム保守の費用について知りたい方 これらに当てはまる方におすすめの記事となっています。これを読めばシステム保守にいくらかかるのかや、費用を抑えるためのポイントも丸わかりですよ。 (more…)

6 days ago

AI総合ソリューションで業務を革新。DEHAが届ける確かな信頼と価値

2017年の起業から今まで、DEHA SOLUTIONSが歩んできた9年間は、お客様と社員の皆様からのご支援とご協力なくしては語ることができません。心より感謝申し上げます。  私たちはこの間、ベトナムを開発拠点とするシステム開発企業として、日本国内のIT市場向け様々な課題に真摯に向き合ってまいりました。2019年に発表された経済産業省によるIT人材需給に関する調査によると、2030年の日本国内におけるIT人材は最大で約79万人が不足すると予測されています。この深刻な状況の中、多くのSIer企業様や中小・大企業様の開発パートナーとしては、高品質で開発及びソリューションを安定的に提供することで、日本のIT業界の成長を支える一翼を担っています。  >>関連記事:日本経済産業省によると2030年には最大で約79万人のIT人材が不足  近年、ビジネス環境は急速に変化し、DXの波が隅々にまで浸透することに加え、AI技術も全産業を席巻しています。DEHAマガジンでも度々記事を取り上げてきたように、現在AIは単なるトレンドではなく、未来の社会を形作る基盤となりつつあります。  そんな大きな時代の変化を捉え、私たちDEHA SOLUTIONSはこれまでの9年間で培ってきた豊富なナウハウで、AI分野に注力を決意しました。単なる技術ベンダに留まらずに、お客様にとって最も信頼性があるAI総合ソリューション開発パートナーとしては、共に課題解決及びビジネス発展にしていくことを目指してまいります。  (more…)

1 week ago

開発リソース不足を解決する5つ方法を徹底比較

開発の現場では「人が足りない」「スキルが合わない」「今すぐ増強したい」が日常茶飯事です。 そこでこの記事では、①オフショア開発 ②ニアショア開発 ③フリーランス・業務委託 ④SES ⑤社内のリソース強化(社員育成・ノーコード/ローコード・AI活用)の5つ手段を、スピード/コスト/品質確保/管理負荷/機密性/拡張性で徹底比較し、選び方の指針まで一気通貫で整理します。 開発を効率化させたい方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めば開発リソースを確保するためのそれぞれの手段について、特徴がわかりますよ。 (more…)

2 weeks ago

【2025年版】ベトナムオフショア開発の人月単価相場

近年、IT人材不足が深刻化する日本市場では、オフショア開発の活用がますます一般的になっています。 なかでも、ベトナムは高い技術力とコスト競争力を兼ね備えた国として、依然として人気を維持しています。 この記事では、2025年最新のベトナムオフショア開発における人月単価相場を役割別に解説し、最新動向までを詳しくご紹介します。 ベトナムオフショアに興味がある方 開発コストを抑えたいとお考えの方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばベトナムオフショアの具体的なコストがわかりますよ。 (more…)

3 weeks ago

【2025年】円安がいつまで続く?オフショア開発に与える影響

2025年8月時点におけるドル/円(USD/JPY)の為替レートは、およそ ¥146.9です。 円安傾向は続いており、過去数十年のトレンドとも重なりつつ、依然として投資・政策動向から注目を浴びています。 この記事ではそんな円安に着目してオフショア開発に与える影響を見ていこうと思います。 オフショア開発を始めたい方 社内のIT人材が不足している方 開発効率を上げたい方 これらに当てはまる方におすすめの記事となっています。これを読めばオフショア開発に円安がどう影響するのかがわかるのはもちろん、いつ始めるべきかまで丸わかりですよ。 (more…)

4 weeks ago