この講義では、行と列の両方を完全に制御できる強力なレイアウト システムである CSS グリッドについて詳しく説明します。 Flexbox は 1 次元レイアウト (行または列) に最適ですが、Grid では 2 次元レイアウトを処理できるため、Web ページ全体のレイアウトを正確にデザインできます。
CSS Grid Layout (一般に Grid) は、行と列の両方を同時に管理するように設計された 2D レイアウト システムです。これは、各要素がグリッド セルに配置され、すっきりと整理されたレイアウトを可能にするマトリックスまたはスプレッドシートと考えることができます。
グリッドの使用を開始するには、display:grid を設定してコンテナをグリッドとして定義する必要があります。次に、grid-template-rows プロパティと Grid-template-columns プロパティを使用して行と列の数を定義します。
1234
.grid-container { display: grid; grid-template-columns: 100px 100px; grid-template-rows: 100px 100px; gap: 10px; /* space between the grid items */ } .item { background-color: #4CAF50; padding: 20px; color: white; text-align: center; }
これにより、各セルが 100 ピクセル x 100 ピクセル、セル間に 10 ピクセルのギャップとなる 2x2 グリッドが作成されます。
grid-area プロパティを使用して、アイテムが占有する特定のグリッド領域を定義することもできます。これにより、グリッド内で項目を配置する場所を正確に制御できます。
HeaderMain Content
.grid-container { display: grid; grid-template-areas: "header header" "sidebar main" "footer footer"; grid-template-columns: 1fr 3fr; grid-template-rows: auto 1fr auto; gap: 10px; } .header { grid-area: header; } .sidebar { grid-area: sidebar; } .main { grid-area: main; } .footer { grid-area: footer; }
この例では、ヘッダーとフッターが 2 つの列にまたがり、サイドバーとメイン コンテンツが独自の列を占める基本的なレイアウトを作成します。 Grid-template-areas プロパティを使用すると、各領域の名前を使用してグリッドの構造を定義できます。
CSS グリッドの最も優れた点の 1 つは、CSS グリッドを簡単にレスポンシブにできることです。 auto-fit プロパティと auto-fill プロパティを使用すると、利用可能なスペースに基づいて列の数を自動的に調整できます。
.grid-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
この例では、グリッドはコンテナ内に収まる数の列を自動的に作成します。各列の幅は少なくとも 150px です。余分なスペースがある場合、列は残りの領域を埋めるように引き伸ばされます。
justify-items と align-items を使用して、グリッド内のアイテムを整列できます。
.grid-container { display: grid; grid-template-columns: repeat(3, 1fr); justify-items: center; align-items: center; gap: 10px; } .item { background-color: #FF5722; padding: 20px; color: white; text-align: center; }
これにより、すべてのアイテムがグリッド セル内で水平方向と垂直方向の中央に配置されます。
CSS グリッドはネストされたグリッドもサポートしているため、グリッド アイテム内にグリッドを作成して、より複雑なレイアウトを作成できます。
Nested 1Nested 2Item 2Item 3
.grid-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; } .nested-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; } .nested-item { background-color: #FFC107; padding: 10px; color: black; }
この例では、グリッド アイテムの 1 つにネストされたグリッドが含まれており、より柔軟で詳細なレイアウトが可能です。
CSS Grid は Web デザインに革新をもたらし、最小限の労力で複雑で応答性の高いレイアウトを構築する強力な方法を提供します。ブログ レイアウト、ダッシュボード、Web サイト構造のいずれで作業している場合でも、Grid を使用すると、行と列の両方を簡単に制御できる柔軟性が得られます。
リドイ・ハサン
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3