スペース均等互換性の問題を解決する2つの方法についての簡単な説明

スペース均等互換性の問題を解決する2つの方法についての簡単な説明

flex は 2009 年のリリース以来、ほぼすべてのブラウザでサポートされています。シンプルでレスポンシブなレイアウト ソリューションである flex は、レイアウト開発に多くの利便性をもたらします。
justify-content プロパティは、フレックス レイアウトで非常によく使用されるプロパティで、主軸上の子要素の配置を定義します。 flex-start | flex-end | center | space-between | space-around | space-evenlyなどのプロパティがあります。

しかし、開発中に、space-evenly を使用すると互換性の問題が発生することがわかりました。iPhone 5s でテストしたところ、justify-content: space-evenly が設定されたコンテナー内の子要素が、期待どおりに主軸に沿って均等に分散されず、左に圧縮されていることがわかりました。

。容器 {
  ディスプレイ: フレックス;
  コンテンツの均等配置: スペースを均等に;
}

space-evenly を使用できますか? を確認した後、space-evenly のサポート範囲は確かに比較的狭いことがわかりました。

MDN における space-evenly プロパティの定義は次のとおりです。

フレックス アイテムは、指定された配置コンテナー内の主軸に沿って均等に分散されます。隣接するフレックス アイテム間の間隔、メイン軸の始点から最初のフレックス アイテムまでの間隔、およびメイン軸の終点から最後のフレックス アイテムまでの間隔はすべてまったく同じです。

この問題を解決するために、私は2つの方法を考えました。

flex-growの使用

flex-grow は、コンテナーの残りのスペースを子要素にどのように分配するかを指定します。
すべての子要素に flex-grow: 1 属性を設定すると、コンテナのスペースが均等に分割され、「均等な配分と等間隔」の効果が得られます。

。容器 {
  ディスプレイ: フレックス;
  。子供: {
    フレックス: 1;
  }
}

スペース間の使用

もう 1 つの方法は、space-evenly プロパティに似た space-between を使用することです。これら 2 つのプロパティは非常に近いため、space-between で互換性の問題が発生することはほとんどありません。

違いは、space-evenly では各子要素の両側に同じスペースがあるのに対し、space-between では各行の最初の要素が行の先頭に揃えられ、各行の最後の要素が行の末尾に揃えられることです。

コンテナー内に 5 つの子要素があると仮定すると、これら 2 つの属性の違いは次のように簡単に表現できます。

// 均等間隔
|--息子--息子--息子--息子--息子--|

// スペース間
|ジ・ジ・ジ・ジ・ジ・ジ|

つまり、space-evenly は、space-between よりも両側に 2 つ多くのギャップを持ちますが、space-between の最初の子要素と最後の子要素はコンテナーの端に近くなります。

このギャップを埋めるために、2 つの疑似要素を使用して、space-between に設定したときにコンテナーに 7 つの子要素を含めることができます。つまり、「6 つのギャップ」があることになります。

|偽--子--子--子--子--子--偽|

コード:

。容器 {
  ディスプレイ: フレックス;
  コンテンツの両端揃え: スペースの間;

  &:前に、
  &:後 {
    コンテンツ: '';
    表示: ブロック;
  }
}

これで、スペース均等互換性の問題を解決する 2 つの方法についての説明は終了です。スペース均等互換性に関するその他のコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  CSSの絶対と相対について

>>:  Linux で FastDFS を使用してイメージ サーバーを構築する

推薦する

VMware 仮想マシン (CentOS7 イメージ) を使用して Linux をインストールする

1. VMwareのダウンロードとインストールリンク: https://www.jb51.net/s...

CSS を使用して、画像に 3D の凸型と凹型のエフェクト (フレーム外に凸型、またはフレーム内に凹型) を実現します。

Ⅰ. 問題の説明: CSS を使用して画像の 3D 凸凹効果を実現します。 Ⅱ実施手順は以下のとお...

JavaScriptの構文とコード構造に関する深い理解

目次概要機能性と読みやすさ空白括弧セミコロンインデント身元大文字と小文字を区別予約キーワード概要すべ...

SQL文でのgroup byの使用について簡単に説明します

1. 概要Group by は、by の後の規則に従ってデータをグループ化することを意味します。いわ...

HTML ユーザー登録ページ設定ソースコード

上記の Web ページをデザインします。 <!DOCTYPE html> <htm...

IDEA が Docker を統合してリモート展開を実現するための手順

1. Dockerサーバーへのリモートアクセスを有効にするdocker が配置されているリモート サ...

Win7 の VMware 仮想マシンに Linux7.2 をインストールするインターネット アクセス構成チュートリアル

参考までに、win7システム上のVMware仮想マシンにlinux7.2インターネットアクセス構成を...

SQLはLeetCodeを実装します(180.連続した数字)

[LeetCode] 180. 連続した数字少なくとも 3 回連続して出現するすべての数字を検索す...

ウェブデザイン実践者必読のキャリアプラン

原文記事、転載の際は著者と出典を明記してください! Web デザインは間違いなくテクノロジーであり、...

MySQL のデッドロック チェックとデッドロック除去の例の詳細な説明

1. クエリプロセスプロセスリストを表示2. 対応するプロセスを照会し、IDを強制終了します。検証(...

vue3.0 でカルーセル コンポーネントをカプセル化する手順

目次1: カプセル化の考え方2. 包装工程3: ドットインジケーター4: 左と右のインジケーター5:...

Linux ファイル操作でよく使われるコマンドのまとめ

0. 新しい操作: mkdir abc #新しいフォルダを作成 touch abc.sh #新しいフ...

nginx でディレクトリ ホワイトリストと IP ホワイトリストを設定する方法

1. ディレクトリホワイトリストを設定する:指定されたリクエストパスに制限を設定しないでください。た...

Dockerイメージを構築する2つの方法

目次既存のイメージからイメージを更新します。イメージを最初から構築する: Docker イメージ リ...