最新のWeb開発のチュートリアル
×

CSS チュートリアル

CSS HOME CSS 導入 CSS 構文 CSS の仕方 CSS 色 CSS 背景 CSSボーダー CSS 余白 CSS パディング CSS 高さ/幅 CSS テキスト CSS フォント CSS リンクス CSS リスト CSS テーブル CSS ボックスモデル CSSの概要 CSSの表示 CSS 最大幅 CSSのポジション CSS 浮く CSS Inline-block CSS 整列します CSS コンビネータ CSS 擬似クラス CSS 擬似要素 CSS ナビゲーションバー CSS ドロップダウン CSS ツールチップ CSS イメージギャラリー CSS 画像の不透明度 CSS 画像のスプライト CSS attrのセレクタ CSSフォーム CSS カウンター

CSS3

CSS3 導入 CSS3 角丸 CSS3 ボーダーイメージ CSS3 背景 CSS3 色 CSS3 グラデーション CSS3 影 CSS3 テキスト CSS3 フォント CSS3 2Dトランスフォーム CSS3 3Dトランスフォーム CSS3 トランジション CSS3 アニメーション CSS3 画像 CSS3 ボタン CSS3 ページネーション CSS3 複数の列 CSS3 ユーザーインターフェース CSS3 ボックスのサイズ設定 CSS3 Flexbox CSS3 メディアクエリー CSS3 MQ例

CSS レスポンシブWebデザイン

レスポンシブWebデザイン イントロ レスポンシブWebデザイン ビューポート レスポンシブWebデザイン グリッドビュー レスポンシブWebデザイン メディアクエリー レスポンシブWebデザイン 画像 レスポンシブWebデザイン ビデオ レスポンシブWebデザイン フレームワーク

CSS Examples

CSS 例 CSS クイズ CSS 証明書

CSS References

CSS 参照 CSS セレクタ CSS 機能 CSS リファレンス聴覚 CSS Web Safe フォント CSS アニメーション CSS ユニット CSS PX-EMコンバータ CSS 色 CSS 色値 CSS 色名 CSS3 ブラウザのサポート

 

CSS3 Flexible Box


CSS3 Flexbox

柔軟なボックス、またはflexbox 、CSS3で新しいレイアウトモードです。

使用flexboxページのレイアウトが異なる画面サイズと異なる表示デバイスに対応しなければならないときに要素が予想どおりに動作することを保証します。

多くのアプリケーションでは、柔軟なボックスモデルは、浮動小数点数を使用し、またその内容の余白とフレックスコンテナのマージンの崩壊を行わないことでブロックモデルを超える改善を提供します。


ブラウザのサポート

表中の数字は完全に機能をサポートする最初のブラウザのバージョンを指定します。

数字は続い-webkit-または-moz-接頭辞で働いていた最初のバージョンを指定します。

プロパティ
Basic support
(single-line flexbox)
29.0
21.0 -webkit-
11.0 22.0
18.0 -moz-
6.1 -webkit- 12.1 -webkit-
Multi-line flexbox 29.0
21.0 -webkit-
11.0 28.0 6.1 -webkit- 17.0
15.0 -webkit-
12.1

CSS3 Flexbox概念

Flexboxフレックスコンテナやフレックス項目から構成されています。

フレックスコンテナを設定することによって宣言されdisplayのいずれかに要素のプロパティをflex (ブロックとしてレンダリング)またはinline-flex (インラインとしてレンダリング)。

フレックスコンテナの内部に一つ以上のフレックスの項目があります。

注意:フレックスコンテナの外側とフレックス項目内部のすべてがいつものようにレンダリングされます。 フレキシボックスは、フレックスコンテナ内でどのように配置されるか、フレックス項目を定義します。

Flexの項目がフレックスラインに沿ってフレックスコンテナの内側に配置されています。 デフォルトでは、フレックスコンテナごとに1つだけのフレックスラインがあります。

次の例では、3つのフレックス項目を示しています。 これらはデフォルトで配置されている:水平フレックスラインに沿って、左から右へ:

<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
    display: -webkit-flex;
    display: flex;
    width: 400px;
    height: 250px;
    background-color: lightgrey;
}

.flex-item {
    background-color: cornflowerblue;
    width: 100px;
    height: 100px;
    margin: 10px;
}
</style>
</head>
<body>

<div class="flex-container">
  <div class="flex-item">flex item 1</div>
  <div class="flex-item">flex item 2</div>
  <div class="flex-item">flex item 3</div>
</div>

</body>
</html>

»それを自分で試してみてください

フレックス線の方向を変更することも可能です。

我々が設定した場合directionにプロパティをrtl (右から左)、テキストは右から左に描画され、また、フレックスラインは、ページレイアウトを変更します方向を変更します。

body {
    direction: rtl;
}

.flex-container {
    display: -webkit-flex;
    display: flex;
    width: 400px;
    height: 250px;
    background-color: lightgrey;
}

.flex-item {
    background-color: cornflowerblue;
    width: 100px;
    height: 100px;
    margin: 10px;
}

»それを自分で試してみてください


Flexの方向

flex-directionプロパティは、フレックスコンテナ内柔軟なアイテムの方向を指定します。 デフォルト値のflex-directionあるrow (左から右、上から下)。

次のように他の値は次のとおりです。

  • row-reverse -書き込みモード(方向)が左から右にされている場合は、フレックスアイテムは右から左にレイアウトされます
  • column -ライティングシステムが水平になっている場合は、フレックスアイテムが垂直方向にレイアウトされます
  • column-reverse -列と同じですが、逆に

次の例では、使用した結果を示しrow-reverse値:

.flex-container {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-direction: row-reverse;
    flex-direction: row-reverse;
    width: 400px;
    height: 250px;
    background-color: lightgrey;
}

»それを自分で試してみてください

次の例では、使用した結果を示しcolumn値:

.flex-container {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-direction: column;
    flex-direction: column;
    width: 400px;
    height: 250px;
    background-color: lightgrey;
}

»それを自分で試してみてください

次の例では、使用した結果を示してcolumn-reverse値:

.flex-container {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-direction: column-reverse;
    flex-direction: column-reverse;
    width: 400px;
    height: 250px;
    background-color: lightgrey;
}

»それを自分で試してみてください


正当化するコンテンツプロパティ

justify-contentアイテムがメイン軸上のすべての利用可能なスペースを使用しないときに、プロパティは、水平方向にフレキシブルコンテナのアイテムを揃えます。

設定可能な値は次のとおり:

  • flex-start -デフォルト値。 アイテムは、コンテナの先頭に配置されています
  • flex-end -アイテムは、容器の端部に配置されています
  • center -アイテムは、容器の中央に位置しています
  • space-between -アイテムがライン間のスペースで配置されています
  • space-around -アイテムは間、および行の後、前にスペースが配置されています

次の例では、使用した結果を示しflex-end値:

.flex-container {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: flex-end;
    justify-content: flex-end;
    width: 400px;
    height: 250px;
    background-color: lightgrey;
}

»それを自分で試してみてください

次の例では、使用した結果を示してcenter値:

.flex-container {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
    width: 400px;
    height: 250px;
    background-color: lightgrey;
}

»それを自分で試してみてください

次の例では、使用した結果を示しspace-betweenの値を:

.flex-container {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    width: 400px;
    height: 250px;
    background-color: lightgrey;
}

»それを自分で試してみてください

次の例では、使用した結果を示しspace-around値を:

.flex-container {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-around;
    justify-content: space-around;
    width: 400px;
    height: 250px;
    background-color: lightgrey;
}

»それを自分で試してみてください


ALIGN-項目プロパティ

align-itemsアイテムはクロス軸上のすべての利用可能なスペースを使用しないときに、プロパティは、垂直方向にフレキシブルコンテナのアイテムを揃えます。

設定可能な値は次のとおり:

  • stretch -デフォルト値。 アイテムは、コンテナに収まるように伸縮され
  • flex-start -アイテムは、容器の上部に配置されています
  • flex-end -アイテムは、容器の底部に配置されています
  • center -アイテムが容器の中央に配置されている(上下方向)
  • baseline -アイテムは、容器のベースラインに配置されています

次の例では、使用した結果を示してstretch (これはデフォルト値です)値:

.flex-container {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: stretch;
    align-items: stretch;
    width: 400px;
    height: 250px;
    background-color: lightgrey;
}

»それを自分で試してみてください

次の例では、使用した結果を示しflex-start値:

.flex-container {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: flex-start;
    align-items: flex-start;
    width: 400px;
    height: 250px;
    background-color: lightgrey;
}

»それを自分で試してみてください

次の例では、使用した結果を示しflex-end値:

.flex-container {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: flex-end;
    align-items: flex-end;
    width: 400px;
    height: 250px;
    background-color: lightgrey;
}

»それを自分で試してみてください

次の例では、使用した結果を示してcenter値:

.flex-container {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    width: 400px;
    height: 250px;
    background-color: lightgrey;
}

»それを自分で試してみてください

次の例では、使用した結果を示しbaseline値を:

.flex-container {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: baseline;
    align-items: baseline;
    width: 400px;
    height: 250px;
    background-color: lightgrey;
}

»それを自分で試してみてください


フレックスラッププロパティ

flex-wrapプロパティが1フレックスライン上で彼らのために十分なスペースがない場合は、フレックス項目は、ラップすべきか否かを指定します。

設定可能な値は次のとおり:

  • nowrap -デフォルト値。 柔軟性のある項目は折り返されません
  • wrap -必要に応じて柔軟なアイテムがラップします
  • wrap-reverse -必要に応じて柔軟な項目は、逆の順序で、ラップします

次の例では、使用した結果を示してnowrap値を(これはデフォルト値です):

.flex-container {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: nowrap;
    flex-wrap: nowrap;
    width: 300px;
    height: 250px;
    background-color: lightgrey;
}

»それを自分で試してみてください

次の例では、使用した結果を示してwrap値:

.flex-container {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    width: 300px;
    height: 250px;
    background-color: lightgrey;
}

»それを自分で試してみてください

次の例では、使用した結果を示してwrap-reverse値:

.flex-container {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap-reverse;
    flex-wrap: wrap-reverse;
    width: 300px;
    height: 250px;
    background-color: lightgrey;
}

»それを自分で試してみてください


ALIGN-コンテンツプロパティ

align-contentプロパティは、の挙動修正flex-wrapプロパティを。 するのに似ているalign-itemsのではなく、フレックスアイテムを揃えるのではなく、フレックスラインを揃えます。

設定可能な値は次のとおり:

  • stretch -デフォルト値。 行は、残りのスペースを取るためにストレッチ
  • flex-start -行はフレックスコンテナの開始に向けてパックされています
  • flex-end -行はフレックスコンテナの端部に向かってパックされています
  • center -行はフレックスコンテナの中心に向かってパックされています
  • space-between -行が均等にフレックスコンテナに分布しています
  • space-around -行が均等にどちらかの端にハーフサイズのスペースで、フレックスコンテナに分布しています

次の例では、使用した結果を示してcenter値:

.flex-container {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-align-content: center;
    align-content: center;
    width: 300px;
    height: 300px;
    background-color: lightgrey;
}

»それを自分で試してみてください


Flexのアイテムのプロパティ

発注

orderプロパティは、同じコンテナ内の柔軟なアイテムの残りの部分に柔軟な項目の相対的な順序を指定します。

.flex-item {
    background-color: cornflowerblue;
    width: 100px;
    height: 100px;
    margin: 10px;
}

.first {
    -webkit-order: -1;
    order: -1;
}

»それを自分で試してみてください

マージン

設定margin: auto;余分なスペースを吸収します。 異なる位置にフレックスアイテムをプッシュするために使用することができます。

次の例では、設定margin-right: auto;最初のフレックスアイテムに。 これは、すべての余分なスペースは、その要素の右に吸収されるようになります:

.flex-item {
    background-color: cornflowerblue;
    width: 75px;
    height: 75px;
    margin: 10px;
}

.flex-item:first-child {
    margin-right: auto;
}

»それを自分で試してみてください

パーフェクトセンタリング

完璧なセンタリング:次の例では、ほぼ毎日、問題を解決します。

それはフレキシボックスと非常に簡単です。 設定margin: auto;アイテムが完全に両方の軸を中心に行います。

.flex-item {
    background-color: cornflowerblue;
    width: 75px;
    height: 75px;
    margin: auto;
}

»それを自分で試してみてください

揃える自己

align-selfフレックスアイテムのプロパティは、そのアイテムのフレックスコンテナのアライン-itemsプロパティをオーバーライドします。 これは、同じ可能な値がありalign-itemsプロパティを。

次の例では、各フレックス項目に異なる整列自己の値を設定しています。

.flex-item {
    background-color: cornflowerblue;
    width: 60px;
    min-height: 100px;
    margin: 10px;
}

.item1 {
    -webkit-align-self: flex-start;
    align-self: flex-start;
}
.item2 {
    -webkit-align-self: flex-end;
    align-self: flex-end;
}

.item3 {
    -webkit-align-self: center;
    align-self: center;
}

.item4 {
    -webkit-align-self: baseline;
    align-self: baseline;
}

.item5 {
    -webkit-align-self: stretch;
    align-self: stretch;
}

»それを自分で試してみてください

フレックス

flexプロパティは、同じコンテナ内のフレックスアイテムの残りの部分に比べて、フレックス項目の長さを指定します。

次の例では、最初のフレックス項目は空き領域の2/4を消費し、他の2つのフレックスの項目は、自由空間それぞれの1/4を消費します。

.flex-item {
    background-color: cornflowerblue;
    margin: 10px;
}

.item1 {
    -webkit-flex: 2;
    flex: 2;
}

.item2 {
    -webkit-flex: 1;
    flex: 1;
}

.item3 {
    -webkit-flex: 1;
    flex: 1;
}

»それを自分で試してみてください


例

その他の例

フレキシボックスで応答性のウェブサイトを作成します。
この例では、フレキシボックスに応答するWebサイトのレイアウトを作成する方法を示します。


CSS3フレキシボックスのプロパティ

次の表は、フレキシボックスで使用されるCSSプロパティを示しています。

Property Description
display Specifies the type of box used for an HTML element
flex-direction Specifies the direction of the flexible items inside a flex container
justify-content Horizontally aligns the flex items when the items do not use all available space on the main-axis
align-items Vertically aligns the flex items when the items do not use all available space on the cross-axis
flex-wrap Specifies whether the flex items should wrap or not, if there is not enough room for them on one flex line
align-content Modifies the behavior of the flex-wrap property. It is similar to align-items, but instead of aligning flex items, it aligns flex lines
flex-flow A shorthand propert for flex-direction and flex-wrap
order Specifies the order of a flexible item relative to the rest of the flex items inside the same container
align-self Used on flex items. Overrides the container's align-items property
flex Specifies the length of a flex item, relative to the rest of the flex items inside the same container