とうとうやってきた!CSSの新しいレイアウトモジュール「CSS Grid」って?
多くのホームページでは、段組を行うときはCSSのフレームワークやFlexboxが使われていました。
2017年4月、macOSとiOSのアップデートによって、ついにCSS Grid Layout Moduleが実装されたSafariにバージョンアップされ、すべてのモダンブラウザで「CSS Grid」が利用可能となりました。
「CSS Grid」の登場により、フレームワークを利用しなくてもCSSの標準規格で柔軟な段組ができるようになりました。
それでは、CSSに搭載された*「CSS Grid」*とは、従来のフレームワークを使った段組とはどんなところが違うのでしょうか。
今回は、CSSの標準的なレイアウトモジュールになるであろう「CSS Grid」の概要をご紹介します。
CSSの新しいレイアウトモジュール「CSS Grid」
「CSS Grid」を使えば、ある要素を簡単にグリッドレイアウトで表現できるようになります。
使い方は非常に簡単です。
親要素に*「display: grid」もしくは「display: inline-grid」を指定します。
このとき、親要素のことを「グリッドコンテナ」(Grid Container)、グリッドコンテナの中にある子要素のことを「グリッドアイテム」*(Grid Item)と言います(概念としてはFlexboxに非常に似ています)。
グリッドコンテナには、列を指定する*「grid-template-column」と、行を指定する「grid-template-row」*というプロパティを指定することができます。
それぞれに、行や列のグリッドのサイズをその数だけ指定していきます。
.container {
grid-template-columns: 20px 40px auto 40px 20px;
grid-template-rows: 25% 100px auto;
}
また、ブラケットを使って行や列に名前をつけることもできます。
その場合には、*[name]*のように個別に名前をつけます。
.container {
grid-template-columns: [col1] 33% [col2] 34% [col3] 33%;
grid-template-rows: [row1] 47% [row2] 53%;
}
さまざまなプロパティ
*「grid-template-column」「grid-template-row」*以外にも、よく使うプロパティをご紹介します。
「grid-column-gap」「grid-row-gap」「grid-gap」
*「grid-column-gap」「grid-row-gap」を使うとそれぞれ、グリッドアイテムの列や行の間の余白を指定することができます。
また、「grid-gap」*は、この2つをショートハンドで記入することができます。
.container {
grid-gap: 20px 10px;
}
例えば、上記のような場合には、列に20px、行に10pxの余白を作ります。
「grid-column」「grid-row」
*「grid-column」「grid-row」*では、スラッシュ区切りで列や行のライン番号を指定することができます。
図のように、列が3、行が2列の場合、列のラインは1〜4、行のラインは1〜3というようになります。
番号は1から始まりますが、ラインは両端にあるので、最大のライン番号は実際の行や列の数に1を足した番号になることに注意をします。
「justify-items」「justify-content」「justify-self」「align-items」「align-content」「align-self」
*「justify-items」「justify-content」「justify-self」「align-items」「align-content」「align-self」*の6つのプロパティは、Flexboxを使うときにも見るので、馴染みのある方も多いのではないでしょうか。
実はこれらはFlexbox特有のものではなく、Box Alignment Moduleという仕様になっているので、「CSS Grid」でも使うことができます。
もっとも標準的なCSS Gridの例
もう少し具体的にCSS Gridについて見ていきましょう。
下記の例では、3つの列と2つの行で構成されているCSS Grid Layoutです。
一番右のセルは2行にまたがっているように見えます。
これをコードに直してみると、以下のようになるでしょう。
.container {
display: grid;
grid-template-columns: [col1] 33% [col2] 33% [col3] 33%;
grid-gap: 10px;
grid-template-rows: [row1] 47% [row2] 47%;
text-align: center;
color: #fcfcfc;
}
.grid-item-1 {
background-color: #0060e6;
padding: 25px;
border-radius: 6px;
}
.grid-item-2 {
background-color: #0060e6;
padding: 25px;
border-radius: 6px;
}
.grid-item-3 {
background-color: #0060e6;
padding: 25px;
border-radius: 6px;
}
.grid-item-4 {
background-color: #0060e6;
padding: 25px;
border-radius: 6px;
}
.grid-item-5 {
background-color: #ff1493;
grid-column: 3 ;
grid-row: 1 / 3;
padding: 25px;
border-radius: 6px;
}
HTMLは以下のようになります。
<div class="container">
<div class="grid-item-1”>1</div>
<div class="grid-item-2”>2</div>
<div class="grid-item-3”>3</div>
<div class="grid-item-4”>4</div>
<div class="grid-item-5”>5</div>
</div>
「.container」内では列の横幅や行の高さを指定します。
また、ブラケットを使うことで名前を指定することもできます。
「.grid-cell-5」については、*「grid-column: 3;」*をつけることで、3番目の列に来るように指定しています。
*「grid-row: 1/3」*は、最初の行から(実際には存在しない)3行目までにラインを伸ばすように指定をしています。
まとめ
デザイナーによっては、従来使っていたCSSフレームワークを使うよりも、かえって「CSS Grid」を使ったほうが分かりやすいと感じたひともいるのではないでしょうか。
実際、外部ファイルを読み込む必要もなく、互換性の面でもこちらのほうが優れていると言えるので、これからますますWeb開発の現場で登場しそうです。
折り返しはするけれど一方的なFlexboxとは違い、「CSS Grid」では縦横自由に配置することが可能です。
導入は非常に簡単なので、ぜひ利用してみてはいかがでしょうか。
- ページ
- 印刷物のカタログやパンフレットは、通常複数のページから成り立っています。インターネットのホームページもまったく同じで、テーマや内容ごとにそれぞれの画面が作られています。この画面のことを、インターネットでも「ページ」と呼んでいます。ホームページは、多くの場合、複数ページから成り立っています。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- フレームワーク
- フレームワークとは、アプリケーションソフトを開発する際によく必要をされる汎用的な機能をまとめて提供し、アプリケーションの土台として機能するソフトウェアのことです。 元々は枠組み、下部構想、構造、組織という意味の英単語です。アプリケーションのひな形であり、これを開発に利用することで、大幅な効率の向上が見込めます。
- OS
- OSとはOperation Systemの略称です。パソコンやスマートフォンで操作した内容をアプリケーションに伝える役目を担っています。パソコン用ではwindowsやMac OS、スマートフォンではiOSやAndroidが有名です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- フレームワーク
- フレームワークとは、アプリケーションソフトを開発する際によく必要をされる汎用的な機能をまとめて提供し、アプリケーションの土台として機能するソフトウェアのことです。 元々は枠組み、下部構想、構造、組織という意味の英単語です。アプリケーションのひな形であり、これを開発に利用することで、大幅な効率の向上が見込めます。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- フレームワーク
- フレームワークとは、アプリケーションソフトを開発する際によく必要をされる汎用的な機能をまとめて提供し、アプリケーションの土台として機能するソフトウェアのことです。 元々は枠組み、下部構想、構造、組織という意味の英単語です。アプリケーションのひな形であり、これを開発に利用することで、大幅な効率の向上が見込めます。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- フレームワーク
- フレームワークとは、アプリケーションソフトを開発する際によく必要をされる汎用的な機能をまとめて提供し、アプリケーションの土台として機能するソフトウェアのことです。 元々は枠組み、下部構想、構造、組織という意味の英単語です。アプリケーションのひな形であり、これを開発に利用することで、大幅な効率の向上が見込めます。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
おすすめ記事
関連ツール・サービス
おすすめエントリー
同じカテゴリから記事を探す
カテゴリから記事をさがす
●Webマーケティング手法
- SEO(検索エンジン最適化)
- Web広告・広告効果測定
- SNSマーケティング
- 動画マーケティング
- メールマーケティング
- コンテンツマーケティング
- BtoBマーケティング
- リサーチ・市場調査
- 広報・PR
- アフィリエイト広告・ASP
●ステップ
●ツール・素材
- CMS・サイト制作
- フォーム作成
- LP制作・LPO
- ABテスト・EFO・CRO
- Web接客・チャットボット
- 動画・映像制作
- アクセス解析
- マーケティングオートメーション(MA)
- メールマーケティング
- データ分析・BI
- CRM(顧客管理)
- SFA(商談管理)
- Web会議
- 営業支援
- EC・通販・ネットショップ
- 口コミ分析・ソーシャルリスニング
- フォント
- 素材サイト
●目的・施策
- Google広告
- Facebook広告
- Twitter広告
- Instagram広告
- LINE運用
- LINE広告
- YouTube運用
- YouTube広告
- TikTok広告
- テレビCM
- サイト制作・サイトリニューアル
- LP制作・LPO
- UI
- UX
- オウンドメディア運営
- 記事制作・ライティング
- コピーライティング
- ホワイトペーパー制作
- デザイン
- セミナー・展示会
- 動画・映像制作
- データ分析・BI
- EC・通販・ネットショップ
- 口コミ分析・ソーシャルリスニング