CSS3 Flexbox:ディスプレイ:ボックスvs.フレックスボックスvs.フレックス


83

昨日、CSS3フレックスボックスステートメントを使用するウェブサイトを学校で入手しました。私はそれを前に使ったことがありません。それで私はそれを少しググって、flexboxステートメントの多くの異なるスタイルを見つけました。

何人かの書き込みdisplay: box;、いくつかの使用display: flexbox;、および他のdisplay: flex;

では、違いは何ですか?どちらを使うべきですか?



しかし、どちらが最初に受け入れられた答えを得るでしょう...私はあなたの賭けを@cimmanonでヘッジし、あなたの答えを両方に投稿します!
andyb 2013

3
どちらが閉じているかは関係ありません。新しい質問の方が答えが良ければ、古い質問を閉じることができます。まったく同時に「質疑応答」として投稿された古い質問は、決して受け入れられないか、OPが独自の回答を受け入れるのではないかと推測します。私が言ったように、私はここであなたの答えを複製し、OPが答えを受け入れると仮定して、古いものをこれの複製として閉じることに投票します:-)
andyb 2013

2
@andyb:私にとっては、ここにもっと良いリンクと解決策の両方の答えがあります...だから、たとえそれが重複していても、私の質問を閉じるべきではないと思います。

2
@andyb:ああ!どういうわけかそれを逃した。すぐに確認します。ありがとう。
–BoltClock

回答:


150

これらは異なるスタイルです。
display: box;は2009年
display: flexbox;のバージョンです。
display: flex;は2011年のバージョンです。は実際のバージョンです。

ポールアイリッシュの引用

警告:Flexboxはいくつかの主要な改訂が行われているため、この記事は古くなっています。要約すると、この記事の基になっている古い標準(Flexbox 2009)は、v4以降のChrome、v2以降のFirefox、およびIE10ベータ版に実装されていました。

それ以来、新しいフレックスボックス標準がデビューし、Chrome 17でデビューし始めました。StephanHayは、新しいフレックスボックスの実装に関するガイドを作成しました。それ以来、仕様はChrome 21に導入され始めた名前の変更を受けました。Chrome22は、最新の仕様を安定して実装しています。

この時点で、どちらか実装することにはリスクがありますので、注意してください。

これは、さまざまなフレックスボックスステートメントに関するブログです。
これは、さまざまなバージョンに関するcss-tricksによるブログエントリです。

フレックスボックスを使用するときは、常に次のように記述します。

display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;

編集:
それでも、誰もがフレックスボックスレイアウトを表示できるブラウザ/デバイスを持っているわけではありません。したがって、フォールバックソリューションまたは代替案についてはflexboxを使用せずにflexboxを使用する方法に関するKenanYusufによるこの記事があります。


宣言の順序は重要なようです。私は-webkit-boxのみをサポートする古いAndroidChromeに取り組んでいましたが、この宣言を有効にするには最後に行う必要があります。誰もこれを経験しますか?
ケン

3
@ケンいいえ、-webkit-box最初に来ます。最後の宣言は、常に最新またはW3C標準である必要があります。ただし、IE12 / Edgeはをサポートしているため、後でお勧め-ms-flexboxしますが、技術的に-webkit-flex-webkit-flex、IEでの-ms-代わりに適切なプレフィックスを使用する必要があります-webkit-。これは、ディスプレイとしての一般的な注意事項です。ここではIE12の影響を受けません。
hexalys

9

仕様は、参照、多くの反復を経た2009年2012年2013年と値が変更されたたびに。display: flex;最新です。

これはまだドラフト仕様であるため、現在の実装は変更される可能性があります。


1

表示:フレックス; 現在、最新のより良いバージョンであり、コードで使用できます。

だから、そのために行きます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.