先週 Twitter でこの質問をしたところ、50% 以上の人が「はい」と答えたことに驚きました。私は最近までどのプロジェクトでもフレックスボックスを使用したことがなかったので、私だけがそうするに違いないと思っていたので、驚いています。
私はいくつかの理由からフレックスボックスを使用しません。しかし、いくつかの調査の後、私の懸念は大幅に軽減され、移行を開始しました。ここでは、Flexbox の使用を開始すべき 6 つの理由を紹介します。
私がまだ Flexbox を使用していない主な理由は、ブラウザのサポートが不足しているためだと思います。しかし実際には、Flexbox は世界中のブラウザで 95.89% の率で十分にサポートされています。 IE 10 以下を考慮しない場合、この数字はさらに高くなる可能性があると Microsoft は述べています。
Flexbox は、現在でも使用している 2D 変換 (91.85% サポート) や、position:fixed (92.98% サポート) などの他の機能よりも高いサポートを持っています
ただし、最新バージョンです。すべてのブラウザのうち 8 が Flexbox の現在の構文をサポートしていますが、古いバージョンのサポートはどうなっているのでしょうか?半年以上文法が変更されているため、文章に矛盾がある部分があります。すべてのブラウザーの最後の 2 つの現行バージョンをサポートするには、異なるベンダー プレフィックスを使用して、各ルールの少なくとも 4 つの異なるバージョンを作成する必要があります。
この問題に関して、私の解決策は autoprefixer を使用するだけです 。どのベンダー プレフィックスを使用するのが最適かを追跡するのに時間と労力を費やす必要はないため、自動化されるように設定する必要があります。
オートプレフィックスを使用すると、サポートしたいブラウザのバージョンを指定でき、対応するベンダー プレフィックスが自動的に追加されます。
/* Write this */.flex-container { display: flex;}/* Compiles to this (with autoprefixer set to support last 2 versions of all browsers) */.flex-container { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex;}
確かに、フレックスボックスについてすべてを学ぶのはそれほど簡単ではありません。 12 の新しいプロパティがあり、それぞれに約 4 つの潜在的な値があります。もちろん、少しずつ理解してマスターすることはできます。
ただし、すべてのプロパティを知る必要はありません。多くの場合、使用する必要があるのは 3 つのプロパティだけであることがわかったためです -
これらのプロパティは、次の場合にのみ使用してください。フレックスコンテナに適用すると、多数の異なるレイアウトを生成できます。関連する知識についてさらに詳しく知りたい場合は、学習に役立つ豊富なリソース/属性リスト/例もあります
フレックスボックスの優れたブラウザサポートに加えて、要素の水平方向および垂直方向のセンタリングも簡単に実現できます。
たった 3 つの宣言で、子要素の完全な中央揃えを実現できます:
.flex-container { display: flex; justify-content: center; /* horizontal centering */ align-items: center; /* vertical centering */ border: 2px dashed #000;}
インライン項目の配置に関する悪名高い問題は、余分な 4 ピクセルのマージンです。この問題にはフローティング要素などの解決策がありますが、いつでも新しい問題が発生する可能性があります。
Flexbox を使用すると、インライン要素を簡単に処理できます。要素の整列を実現できます:
.flex-container { display: flex; }.flex-item { width: 20%; }
アイテム間の均一な分散を実現できます
.flex-container { display: flex; justify-content: space-around;}
:first-child または :last-child を処理せずにこれを行うこともできます。 の場合、達成します。リスト項目の均一な分布:
.flex-container { display: flex; justify-content: space-between;}
Flexbox が作成された理由は、まず、可能な限り少ない宣言で複雑なレイアウトを作成できるようにするためかもしれません。
前の例では、フレックス コンテナー スタイルを設定することによってのみ実装しました。ただし、flex 項目を設定することで、より詳細なスタイル調整を実現できます。たとえば、価格表の一般的なレイアウトは次のとおりです。
ここには 3 つの div があり、中央の div は側面の 2 倍の幅です。フレックスボックスを使用してこのレイアウトを実現するには、次のように記述できます。
.flex-container { display: flex; align-items: center;}.flex-items:not(:nth-child(2)) { flex-grow: 1; height: 300px;}.flex-items:nth-child(2) { flex-grow: 2; height: 350px;}
Felxboxについては、私の認識が非常に遅くなってしまったのですが、今でも考えが変わっていない方もたくさんいると思います。フレックスボックスをまだ使用したことがありますか? まだ使用していない場合は、試してみる価値がありますか?
この記事は @ireaderinokun の「6 Reasons to Start using Flexbox」をもとに翻訳したものであり、翻訳全体に私たちの独自の理解や考えが含まれておりますので、翻訳が不十分な場合や間違っている点がある場合は、業界の友人にアドバイスを求めてください。この翻訳を転載したい場合は、英語の出典を明記してください: http://bitsofco.de/6-reasons-to-start-using-flexbox/。
現役学生、学部コンピューター専攻。積極的で笑いが大好きな女の子。フロントエンドが大好きで、他の人とコミュニケーションしたり共有したりするのが好きです。自分の心の中の自分を自分の努力で実現したいと思っています。 Weibo: @京-如秋叶