HTML・CSSについての質問です。
以下のようなグリッドレイアウトを作りたいのですが、やり方を調べてみても概念がよくわかりませんでした。
見たサイトはこちらです。
もっとわかりやすいサイトや考え方があれば教えていただきたいです。
直接正答を投稿してもらっても構いません。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/20 05:10
回答1件
0
ベストアンサー
こんにちは。
とりあえず、このHTMLで説明しますね。
html
1<div class="container"> 2 <div class="a">1/2</div> 3 <div class="b">1/4</div> 4 <div class="c">1/4</div> 5 <div class="c">1/4</div> 6</div>
まず、コンテナに display:grid を当てて、幅と高さを設定します。
css
1 .container{ 2 display: grid; 3 width: 100%; 4 height: 100vh; 5 }
次に、幅を1/4に分割します。
css
1 .container{ 2 display: grid; 3 width: 100%; 4 height: 100vh; 5 grid-template-columns: 25% 25% 25% 25%; 6 }
高さも1/2に分割します。
css
1 .container{ 2 display: grid; 3 width: 100%; 4 height: 100vh; 5 grid-template-columns: 25% 25% 25% 25%; 6 grid-template-rows: 50% 50%; 7 }
これで、全体が8マスに分割されました。
次に、各アイテムを配置していきます。
aの要素は、横に2マス分を使っていますから、span で2マス分確保します。
css
1 .container{ 2 display: grid; 3 width: 100%; 4 height: 100vh; 5 grid-template-columns: 25% 25% 25% 25%; 6 grid-template-rows: 50% 50%; 7 } 8 .a{ 9 grid-column: span 2; 10 }
さらに、縦にも2マス分を使っていますから、同様に確保します。
css
1 .container{ 2 display: grid; 3 width: 100%; 4 height: 100vh; 5 grid-template-columns: 25% 25% 25% 25%; 6 grid-template-rows: 50% 50%; 7 } 8 .a{ 9 grid-column: span 2; 10 grid-row: span 2; 11 }
bの要素は、横は1マス分ですが、縦に2マス分使っていますので、同様にします。
css
1 .container{ 2 display: grid; 3 width: 100%; 4 height: 100vh; 5 grid-template-columns: 25% 25% 25% 25%; 6 grid-template-rows: 50% 50%; 7 } 8 .a{ 9 grid-column: span 2; 10 grid-row: span 2; 11 } 12 .b{ 13 grid-row: span 2; 14 }
cの要素は、縦横とも1マス分なので、指定は不要です。
以上です。つまりは、テーブルレイアウトの rowspan colspan 属性と同様の感じです。
それほど難しくないと思いますから、いろいろお試しになってはいかがですか?
投稿2020/10/20 05:25
総合スコア36960
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。