[CSSチュートリアル】空間均等性の問題を解決する2つの方法
2009年の登場以来、フレックスはほぼすべてのブラウザでサポートされています。簡単でレスポンシブなレイアウトソリューションとして、フレックスは私たちのレイアウト開発に多くの利便性をもたらしてくれています。
その
justify-content属性は、フレックスレイアウトで非常によく使われるプロパティで、主軸上の子要素の配置を定義します。これには
flex-start | flex-end | center | space-between | space-around | space-evenly
などがあります。
しかし、ある開発プロジェクトで、space-evenlyには互換性の問題があることがわかりました。iPhone 5sでテストしたところ、justify-content: space-evenlyを指定したコンテナ内の子オブジェクトが、予想通り主軸に沿って均等に配置されず、左側に密集していることがわかりました。
.container {
display: flex;
justify-content: space-evenly;
}
表示 スペースイーブンは使えますか? で、space-evenlyは比較的小さな範囲でサポートされていることがわかります。
のスペース・イーブン属性に関するMDN 定義 です。
フレックスアイテムは、指定されたアライメントコンテナ内で主軸に沿って均等に配置される。隣接するフレックスアイテムの間隔、主軸の始点から最初のフレックスアイテムまでの間隔、主軸の終点から最後のフレックスアイテムまでの間隔は、すべて同じである。
この問題を解決するために、筆者は2つの方法を思いついた。
flex-growを使用する
flex-growは、コンテナ内の残りのスペースをどのように子要素に割り当てるかを指定します。
すべての子要素にflex-growを持たせる。1属性を同時に持たせることで、コンテナの空間を均等に共有し、「均等に配置され、等間隔に並ぶ」効果を実現します。
.container {
display: flex;
.child: {
flex: 1;
}
}
スペースバックを使用する
もう一つの方法は、space-evenly属性に似たspace-betweenを使うことです。この2つの属性は近く、space-betweenは互換性の問題とはほとんど無縁です。 この
その違いは、space-evenlyでは各子要素の左右のスペースが同じであるのに対し、space-betweenでは各行の最初の要素が行頭に、最後の要素が行末に揃うことです。
コンテナの中に5つの子要素があるとすると、この2つの属性の違いは、単純に次のように表現できる。
// space-evenly
|-sub-sub-sub-sub-sub-|
// space-between
| sub--sub--sub--sub--sub|
つまり、space-evenly は、最初と最後の子要素がコンテナの端のすぐそばにある space-between よりも、左右に 2 つ多い隙間を持つことになります。
この差を埋めるために、2つの疑似要素を使って、space-betweenに設定したときにコンテナに7つの子要素を与えれば、"6つの隙間 "を得ることができます。
|pseudo-sub-sub-sub-sub-sub-pseudo|
コード
.container {
display: flex;
justify-content: space-between;
&:before,
&:after {
content: '';
display: block;
}
}
この記事は空間均等互換性の問題を解決する2つの方法を紹介します、もっと関連する空間均等互換性の内容はスクリプトハウスの過去の記事を検索してください、または引き続き以下の関連記事を閲覧してください、今後ともスクリプトハウスをもっと応援してください!。
関連
-
[CSSチュートリアル】シングルセレクトの折りたたみメニュー機能を実現するCSS
-
[css3]ピュアCSS3によるネオンライト効果
-
[css3]css3は、背景画像の色を変更するためのさまざまな方法を実現するために
-
[CSSチュートリアル】background-positionプロパティのパーセンテージ値の使い方を探る
-
[ブラウザ互換性チュートリアル]IE9でのネイティブページの互換性問題の解決方法について
-
[CSSチュートリアル】背景画像画面の適応的な実装を実現するCSS
-
[CSSチュートリアル】CSS複合セレクタの具体的な使用方法
-
[CSSチュートリアル】大きな画像や情報を小さなドロップダウンで実現するCSS
-
[CSSチュートリアル]CSSのボーダーの半分または部分的に見えるコードは、ボーダーを達成するために
-
[CSSレイアウト例】6種類の適応的な2カラムレイアウトを実現するCSS
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[CSSチュートリアル】CSSのfloatとunfloatについて
-
[css3]css3は、3つの方法のサンプルコードのテキストの点滅効果を達成するために
-
[CSSチュートリアル】cssフレックスレイアウト ロング自動改行サンプルコード
-
[CSSチュートリアル】CSSカウンターを使った数字の並びの美化方法
-
[CSSチュートリアル】CSSで実現するTikTokのテキストジッター効果例
-
[CSSチュートリアル】タイトルを上部に配置するスティッキーレイアウトを実現するためのCSS
-
[CSSチュートリアル]CSS気まぐれボーダーアニメーション効果
-
[CSSチュートリアル]css transform ページめくりアニメーションの記録
-
[css3]css3 elastic box flexによる3カラムレイアウトの実装。
-
[CSSチュートリアル】CSSマージンの重なりと解決策を詳しく探る