CSSグリッドレイアウト:強力で柔軟なWebサイトレイアウトを構築
コアポイント
- CSSグリッドレイアウトは、
inline
やfloat
などのプロパティや個別のグリッドシステムスタイルシートなどのプロパティを使用せずに、複雑なWebサイトレイアウトを作成するためのより強力で柔軟な方法を提供します。 - 現在、IE 10とエッジはCSSグリッドレイアウトのみをサポートしていますが、ChromeおよびFirefoxの特定のフラグまたはPolyFillを使用して有効にできます。
- CSSグリッドレイアウト「測定単位、ライン、トラック、セル、および「FR」と呼ばれる領域を使用して、Webページ上の要素のレイアウトを定義します。
- CSSグリッドレイアウトにより、マーカーとレイアウトを完全に分離できるようになり、CSSの維持が容易になり、デザインの無限の可能性が得られます。
CSSグリッドレイアウト仕様の導入により、グリッドシステムを使用するために別のスタイルシートを含める必要はなくなりました。もう1つの利点は、Webページに要素をアレンジするために
やinline
などの属性に依存する必要がなくなることです。このチュートリアルでは、グリッドシステムの基本をカバーし、基本的なブログレイアウトを作成します。 float
ブラウザサポート
現在、IE 10とEdgeサポートグリッドレイアウトのみ - 商用サイトではまだ使用できません。
フラグを使用して有効にすることができます。
別のオプションは、PolyFillを使用することです。 CSSグリッドポリフィルが存在します!上記のさまざまなオプションを使用すると、グリッドレイアウトの実験を開始し、まだ初期段階にあるときにできる限り学ぶことができます。 layout.css.grid.enabled
注:Internet Explorerは現在、古いバージョンの仕様を実装しています。残念ながら、これは最新の仕様と完全に互換性がないことを意味します。このチュートリアルの例を研究するときは、対応するフラグを有効にしてChromeまたはFirefoxを使用することをお勧めします。
グリッドシステムの用語
要素をレイアウトするという点では、CSSグリッドシステムはテーブルに似ています。ただし、より強力で柔軟です。このセクションでは、グリッドを使用するときに注意する必要があるいくつかの用語について説明します:
ユニット:このユニットは、利用可能なスペースの一部を指定するために使用されます。
およびで使用するように設計されています。仕様に応じて - fr
grid-rows
grid-columns
分数空間の割り当ては、すべての「長さ」またはコンテンツベースの行と列サイズが最大に達した後に発生します。
line:行は、他の要素の境界を定義します。それらは垂直に、そして水平に走ります。下の図には、4つの垂直線と4つの水平線があります。
道路:トラックは平行線の間のスペースです。以下の図には、3つの垂直トラックと3つの水平トラックがあります。
セル:セルはグリッドの基本的な構成要素です。下の図には、合計9つのセルがあります。
面積:領域は、任意の数のセルを備えた長方形の形状です。したがって、トラックは領域であり、セルも領域です。
グリッド内の位置要素
基本から始めましょう。このセクションでは、グリッドを使用して特定の場所に要素を見つける方法を教えます。 CSSグリッドレイアウトを使用するには、親要素と1人以上の子供が必要です。デモンストレーションのために、次のタグをグリッドシステムとして使用します。
<div class="grid-container"> <div class="grid-element item-a">A</div> <div class="grid-element item-b">B</div> <div class="grid-element item-c">C</div> <div class="grid-element item-d">D</div> <div class="grid-element item-e">E</div> <div class="grid-element item-f">F</div> </div>タグを完了した後、以下に示すように、親要素にまたは
display: grid
を適用する必要があります。display: inline-grid
.grid-container { display: grid; grid-template-columns: 200px 10px 0.3fr 10px 0.7fr; grid-template-rows: auto 20px auto; }およびプロパティは、さまざまな行と列の幅を指定するために使用されます。上記の例では、5つの列を定義しました。
の最初の行を使用して、内部コンテンツに基づいてラインを拡張できるようにします。grid-template-columns
列は、要素間の必要な間隔を提供するスロットとして機能します。最初の列の幅は200pxです。 3番目の列は、残りのスペースのパート0.3を占めます。同様に、5番目の列は、残りのスペースの0.7部分を占めています。grid-template-rows
10px
最初の行を使用して、行はスロットとして機能します。
要素Bは、スロットとして使用する予定の2番目の列にあることを観察します。グリッド内の子要素の位置を指定しない場合、ブラウザは最初の行が完全に満たされ、残りが次の行に移動するまで、各セルに1つの要素を配置します。これが、2列目に4つの予備の列が残っている理由です。grid-template-rows
auto
この時点で、次のデモに示すように、要素は密接に配置されています。 (CodePenデモリンクは省略されています)20px
グリッド内の特定のセルに要素を移動するには、CSSの位置を指定する必要があります。グリッドシステムを使用して要素を移動する方法を説明する前に、以下の画像をご覧ください。 (ここでは画像リンクが省略されています)
この場合、「ラインベースの配置」を使用します。ラインベースの配置とは、グリッドシステムのラインが配置および制限要素のガイドとして機能することを意味します。要素Bを例にしてみましょう。水平方向には、列3から始まり、列4から終わります。垂直軸には、行1と2行目の間にあります。
を使用して、要素の開始垂直線を指定します。この場合、3に設定されます。
要素の端垂直線を示します。この場合、このプロパティは4に等しくなります。対応する行の値も同様に設定されます。
grid-column-start
上記のすべてを考慮して、要素Bを2番目のセルに移動するには、次のCSSを使用します。<div class="grid-container"> <div class="grid-element item-a">A</div> <div class="grid-element item-b">B</div> <div class="grid-element item-c">C</div> <div class="grid-element item-d">D</div> <div class="grid-element item-e">E</div> <div class="grid-element item-f">F</div> </div>同様に、要素Fを6番目のセルに移動するには、次のCSSを使用します。
.grid-container { display: grid; grid-template-columns: 200px 10px 0.3fr 10px 0.7fr; grid-template-rows: auto 20px auto; }これらの変更をCSSに変更した後、このデモのように要素は正しく間隔を置く必要があります。 (CodePenデモリンクは省略されています)
基本的なレイアウトを作成
基本的なブログレイアウトを作成する時が来ました。ブログには、ヘッダー、フッター、サイドバー、および実際のコンテンツ用の2つのセクションがあります。マーカーから始めましょう:
.element-b { grid-column-start: 3; grid-column-end: 4; grid-row-start: 1; grid-row-end: 2; }タグ内の要素の順序は、Webページの要素の位置に影響しないことを忘れないでください。 CSSを変更しない限り、フッターをタグ内のヘッダーの上に配置できます。Webページの要素の位置は変更されません。もちろん、私はこれをお勧めしません。ポイントは、マーカーが要素の位置を決定しなくなるということです。私たちが今しなければならないことは、
の値とさまざまな要素の他の属性を決定することです。最後の例と同じように、グリッドグラフを使用して、すべてのグリッドプロパティの値を決定します。 (ここでは画像リンクが省略されています)
grid-row-end
上の図に示すように、ヘッダーは列1から列4に、行1から行2になります。これは次のようになります:同様に、「エクストラ」は列3から列4に、行5から6行6になります。したがって、CSSは次のとおりです
.element-f { grid-column-start: 5; grid-column-end: 6; grid-row-start: 3; grid-row-end: 4; }他のすべての要素のグリッドプロパティを簡単に決定できるようになりました。 Codepenデモンストレーションをチェックして、さまざまなグリッド値を試して、ラインベースの配置をよりよく理解してください。 (CodePenデモリンクは省略されています)
<div class="grid-container"> <div class="grid-element header">Header</div> <div class="grid-element sidebar">Sidebar</div> <div class="grid-element main">Main Content</div> <div class="grid-element extra">Extra Info</div> <div class="grid-element footer">Footer</div> </div>結論
CSSグリッドレイアウト仕様により、複雑なレイアウトを簡単に作成できます。書く必要があるCSSは、よりシンプルでメンテナンスが簡単です。デザインで複雑なレイアウトを作成する場合、またはその他の属性を使用する必要はなくなりました。もう1つの大きな利点は、マーキングとレイアウトの完全な分離です。 CSSグリッドレイアウトでは、可能性は無限です。
このチュートリアルについてご質問がある場合は、コメントでお知らせください。CSSグリッドレイアウトに関する
FAQfloat
CSSグリッドレイアウトは、他のCSSレイアウトメソッドとどのように異なりますか?
CSSグリッドレイアウトは、1次元のFlexBoxなどの他のCSSレイアウトメソッドとは異なる2次元レイアウトシステムです。これは、CSSグリッドでは、他の方法ではできない水平レイアウトと垂直レイアウトの両方を制御できることを意味します。より複雑なデザインと大規模なレイアウトを処理するように設計されています。また、より柔軟で強力であり、より創造的でより細かいデザインを可能にします。 CSSグリッドレイアウトを始める方法は?
CSSグリッドレイアウトの使用を開始するには、要素の
属性をまたは
に設定する必要があります。これにより、要素はグリッドコンテナとその子要素をグリッドアイテムにします。その後、さまざまなメッシュプロパティを使用して、メッシュのレイアウトとメッシュアイテムの位置を定義できます。
他のCSSレイアウトメソッドでCSSグリッドレイアウトを使用できますか?
はい、CSSグリッドレイアウトは、他のCSSレイアウトメソッドと組み合わせて使用できます。たとえば、WebサイトのコンポーネントにFlexBoxを使用したり、全体的なレイアウトにはCSSグリッドを使用できます。これにより、各レイアウトアプローチを活用できます。
CSSグリッドレイアウトを使用してグリッドを作成する方法は?
CSSグリッドレイアウトを使用してグリッドを作成するには、最初に要素の属性を
グリッドにアイテムを配置する方法は?display
またはgrid
に設定してグリッドコンテナを定義する必要があります。その後、inline-grid
およびgrid-template-columns
プロパティを使用して、グリッド内の列と行の数とサイズを定義できます。grid-template-rows
プロパティと
グリッドラインとグリッドトラックとは何ですか?grid-column
プロパティを使用して、グリッドにアイテムを配置できます。これらのプロパティを使用すると、プロジェクトの開始ラインとエンドラインを指定し、グリッドの特定のセルまたはセルに効果的に配置できます。grid-row
CSSグリッドレイアウトでは、グリッドラインはグリッド構造を構成する仕切りです。それらの数値は1から始まり、ライン数は上から下、左から右に増加します。グリッドトラックは、2つの隣接するグリッドラインの間のスペースで、列または行ができます。
CSSグリッドレイアウトの
ユニットは何ですか?
CSSグリッドレイアウトのfr
ユニットは「スコア」を表します。グリッドコンテナ内の使用可能なスペースの一部を表します。たとえば、3つの列のグリッドがあり、1つの列の幅を
グリッドを応答する方法は?fr
に設定し、他の2つの列を1fr
に設定すると、最初の列は使用可能なスペースの3分の1を占め、もう1つの列は2つを占有します。列はそれぞれ3分の1を占めます。2fr
グリッドをレスポンシブにするには、
およびプロパティを備えたメディアクエリを使用できます。また、
grid-template-columns
およびgrid-template-rows
キーワードを使用して、auto-fill
関数を使用して、ビューポートのサイズに応じて列と行の数とサイズを自動的に調整することもできます。auto-fit
repeat
グリッドにグリッドをネストできますか?はい、CSSグリッドレイアウトにグリッドをネストできます。これは、グリッドプロジェクト自体をグリッドコンテナにして、複雑なネストされたレイアウトを作成できることを意味します。
CSSグリッドレイアウトはすべてのブラウザーによってサポートされていますか?
すべての最新のブラウザー(Chrome、Firefox、Safari、Edgeを含む)は、CSSグリッドレイアウトをサポートしています。ただし、Internet Explorerはそれをサポートしていません。したがって、サポートされていないブラウザを使用するユーザーに代替レイアウトを提供することが重要です。
外部のウェブサイトや写真にアクセスできないため、写真を直接表示できないことに注意してください。 画像リンクが最終出力に正しく追加されていることを確認してください。
以上がCSSグリッドレイアウトの導入の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

最近GraphQLの作業を開始した場合、またはその長所と短所をレビューした場合、「GraphQLがキャッシュをサポートしていない」または

この記事では、Scrollbarsの世界に飛び込みます。私は知っています、それはあまりにも魅力的ではありませんが、私を信じてください、よく設計されたページは手をつないで行きます

Svelte Transition APIは、コンポーネントがカスタムSVELTE遷移を含むドキュメントを入力または離れるときにアニメーション化する方法を提供します。

あなたのウェブサイトのコンテンツプレゼンテーションの設計にどれくらいの時間に費やしますか?新しいブログ投稿を書いたり、新しいページを作成したりするとき、あなたは考えていますか

最近のビットコインの価格が20k $ $ USDを超えており、最近30Kを破ったので、イーサリアムを作成するために深く掘り下げる価値があると思いました

NPMコマンドは、サーバーの開始やコンパイルコードなどの1回限りのプロセスまたは継続的に実行されるプロセスとして、さまざまなタスクを実行します。

先日、エリック・マイヤーとおしゃべりをしていたので、形成期のエリック・マイヤーの話を思い出しました。 CSS特異性に関するブログ投稿を書きました

この記事では、影やグラデーションなどのテキスト効果にCSSを使用し、パフォーマンスのために最適化し、ユーザーエクスペリエンスの向上について説明します。また、初心者向けのリソースもリストしています。(159文字)


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

メモ帳++7.3.1
使いやすく無料のコードエディター

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ホットトピック



