目次
フレックスボックスとグリッド:初期試行
サブグリッドソリューション
ブラウザの互換性とさらなる読み取り
ホームページ ウェブフロントエンド CSSチュートリアル 垂直アライメントの達成(ありがとう、サブグリッド!)

垂直アライメントの達成(ありがとう、サブグリッド!)

Apr 02, 2025 am 04:18 AM

垂直アライメントの達成(ありがとう、サブグリッド!)

最新のWebデザインツールは、垂直アライメント機能を大幅に改善しました。多くの場合、幅960pxの初期のウェブサイトレイアウトは、12列グリッドを使用して水平方向のアライメントに大きく依存していました。メディアクエリの出現は、多くの問題を解決しながら、特に要素が反射または再配置するときのアラインメントに関して、新しい課題をもたらしました。

一般的なシナリオを考えてみましょう:それぞれ内のボタングループを含む「バー」<fieldset></fieldset><legend></legend>。より大きな画面では、アラインメントは簡単です。フロートを使用した単純なCSSアプローチは、これを処理し、より小さなブレークポイントで応答性のある動作を提供します。

 .accessibility-tools fieldset {
  幅:48%;
  フロート:左;
  マージン右:1%;
}

/* 携帯 */
@mediaのみの画面と(max-width:480px){
  .accessibility-tools fieldset {
    幅:100%;
  }
}
ログイン後にコピー

ただし、小さな画面では、垂直方向の不整合が明らかになります。固定された幅では、メディアクエリを使用したピクセルベースのCSSソリューションはアライメントを強制することができますが、このアプローチには柔軟性がなく、特定のコンテンツに関連する「マジック番号」に依存しています。

 /* 携帯 */
@mediaのみの画面と(max-width:480px){
  伝説 {
    幅:160px;
  }
  ボタン {
    幅:130px;
  }
}
ログイン後にコピー

この柔軟性は、メディアクエリ(私が最小限に抑えることを目指している)に依存しているため、より適応性のあるソリューションを必要とします。理想的なソリューションでは、ボタンとラベルが応答できるようにする必要があります。

  1. 利用可能なスペース
  2. コンテンツの寸法
  3. 周囲の要素

ヘイドン・ピカリングの「The Flexbox Holy Albatross」に示されているように、メディアのクエリは周囲の空間を考慮していないため不足しています。望ましい動作は2番目の動作です<fieldset></fieldset>両方のフィールドセットが単一の行に適合しなくなった場合にのみラップします。

フレックスボックスとグリッド:初期試行

FlexBoxは、 flex-wrap: wrap Propertyを備えた柔軟性を向上させ、要素が複数のラインに流れるようにします。ただし、完全な垂直アライメントのためには、多くの場合、 min-widthが必要です。

レイアウト管理用に設計されたCSSグリッドは、メディアクエリのないマルチラインレイアウトのauto-fitおよびauto-fillキーワード( repeat()内)を提供します。 auto-fitを使用して、次のことを達成します。

 .wrapper  -  accessibility-tools {
  ディスプレイ:グリッド;
  Grid-Template-Columns:Repeat(auto-fit、450px);
  グリッドギャップ:10px;
}
ログイン後にコピー

ただし、最適なアライメントには、絶対幅の値が必要になる場合があります。 frユニットまたはminmax()を使用した柔軟なグリッドトラックはさらに改善されますが、グリッドコンテナの直接の子供のみがグリッドアイテムと見なされるため、制限が生じます。

サブグリッドソリューション

CSSグリッドレベル2では、 subgridを導入し、ネストされたグリッドが親からトラックサイジングを継承できるようにします。これにより、独立したネストされたグリッドの問題が解決します。 Subgridを使用すると、子グリッドの要素が兄弟グリッドのコンテンツに応答することができます。

ボタンの例では、親グリッドはauto-fillminmax()を使用して定義されます。

 .wrapper  -  accessibility-tools {
  ディスプレイ:グリッド;
  Grid-Template-Columns:Repeat(auto-fill、minmax(150px、1fr));
  グリッドギャップ:10px;
}
ログイン後にコピー

子グリッドはsubgridを使用して、親の列トラックを継承します。

 .sub-grid {
  ディスプレイ:グリッド;
  グリッドコラム:スパン3;
  Grid-Template-Columns:subgrid;
  Align-Items:Center;
}
ログイン後にコピー

これにより、一貫したアライメントと応答性のある動作が保証されます。ボタンとラベルは、利用可能なスペースに適応し、必要な場合にのみ新しいラインに包みます。

ブラウザの互換性とさらなる読み取り

現在、サブグリッドブラウザーのサポートは限られています(主にFirefox)。 CSS機能クエリは、他のブラウザにフォールバックを提供できます。詳細なブラウザの互換性情報については、caniuse.comを参照してください。このトピックについてさらに読むことには、ミリアム・スザンヌ、レイチェル・アンドリュー、ヘイドン・ピカリングによる記事(元の記事で提供されているリンク)が含まれています。フォーム要素、グリッド、およびフレックスボックスを含むバグを処理するには、フィールドセットの周りのラッパーが必要になる場合があります。 Fieldsetのdisplayプロパティは、これに対処するためにcontentsに設定できます。

以上が垂直アライメントの達成(ありがとう、サブグリッド!)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード 粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード Apr 03, 2025 am 10:30 AM

先日、Corey Ginnivanのウェブサイトから、この特に素敵なビットを見つけました。そこでは、スクロール中にカードのコレクションが互いに積み重ねられていました。

Googleフォント変数フォント Googleフォント変数フォント Apr 09, 2025 am 10:42 AM

Google Fontsが新しいデザイン(ツイート)を展開したようです。最後の大きな再設計と比較して、これははるかに反復的です。違いをほとんど伝えることができません

HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 Apr 11, 2025 am 11:29 AM

プロジェクトにカウントダウンタイマーが必要だったことはありますか?そのようなことのために、プラグインに手を伸ばすのは自然なことかもしれませんが、実際にはもっとたくさんあります

フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? Apr 05, 2025 pm 05:51 PM

フレックスレイアウトの紫色のスラッシュ領域に関する質問フレックスレイアウトを使用すると、開発者ツールなどの混乱する現象に遭遇する可能性があります(D ...

HTMLデータ属性ガイド HTMLデータ属性ガイド Apr 11, 2025 am 11:50 AM

HTML、CSS、およびJavaScriptのデータ属性について知りたいと思っていたことはすべて。

CSSを介してファーストクラスの名前アイテムを使用して子要素を選択する方法は? CSSを介してファーストクラスの名前アイテムを使用して子要素を選択する方法は? Apr 05, 2025 pm 11:24 PM

要素の数が固定されていない場合、CSSを介して指定されたクラス名の最初の子要素を選択する方法。 HTML構造を処理するとき、あなたはしばしば異なる要素に遭遇します...

SASSをより速くするための概念の証明 SASSをより速くするための概念の証明 Apr 16, 2025 am 10:38 AM

新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

See all articles