ログイン

問題51 gridレイアウトの基礎

HTML_CSSの問題

HTML_CSS

gridレイアウトとは、コンテナーとなる親要素を縦横の2次元のグリッドに分割し、その中で子要素の配置を管理します。それに対しflexは縦か横の1次元で子要素を管理します。違いを理解した上で使い分けていきましょう。

gridレイアウトの基礎

問題

display: grid;を使用して
画像を参考に実装してみましょう!

自分の環境に書くコード

              <section>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
</section>
¥HTML¥
            

期待する画面

コードのアイコン

解答ソースコード

              <section>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</section>
¥HTML¥
            
              section {
  width: 400px;
  display: grid;
  grid-template-rows: 100px 100px;
  grid-template-columns: 200px 1fr;
}
div {
  background-color: red;
}
div:nth-child(2) {
  background-color: green;
}
div:nth-child(3) {
  background-color: yellow;
}
div:nth-child(4) {
  background-color: blue;
}
¥CSS¥
            
答えのアイコン

解説

gridレイアウトを理解し使用すれば高度なデザインでも
簡単なソースでレイアウトを組めます。

ちなみにgridのプロパティを付与するのは
親要素に対してあてていきます。
今回のような2×2の要素の際まずはdisplay: grid;を付与します。

次にgrid-template-rowsで1行目と2行目の高さを決定します。
次にgrid-template-columnsで各行の幅を決めていきます。
今回は1行目のみに200px付与しております。

1frと宣言しているのは「残りの幅」という事になります。
ログインして解答を見る
1frのfrはと、fraction(分数の意味)のことで、gridレイアウトのためだけに誕生した新しいサイズの単位です。

例えばgrid-template-columns: 1fr 1fr 1fr;のように記述すると
枠に合うサイズの大きさのグリッドが3つ配置されます。2frだと1frの2倍の大きさだと認識します。
twitterのアイコン
活動記録をTweetする
完了にする!
1.HTMLの宣言をしてみよう
続きの動画を見たい方は公式LINEから「HTML」と送信すると動画が見れます。
LINEの友達追加でお役立ち動画をGET!!