質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Q&A

解決済

1回答

812閲覧

聖杯レイアウトにならない

rasta

総合スコア95

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

0グッド

0クリップ

投稿2021/02/21 07:40

編集2021/02/21 07:44
<!doctype html> <head><link rel="stylesheet" type="text/css" href="c.css"></head> <body> <header></header> <div class="wrapper"> <nav> </nav> <main> </main> <aside> </aside> </div> <footer> </footer> </body> </html>
body { margin:0; display:grid; grid-template-rows:100px 1fr 100px; grid-template-areas:"header" "wrapper" "footer"; } header { grid-area:header; border:1px solid gray; } .wrapper { grid-area:wrapper; display:grid; grid-template-columns:50px 1fr 50px; grid-template-areas:"left center right"; } nav { grid-area:left; border:1px solid gray; } main { grid-area:center; border:1px solid gray; } aside { grid-area:right; border:1px solid gray; } footer { grid-area:footer; border:1px solid gray; }

wrapperのnav center asideの横並びが表示されず、footerがきてます。

rowがheader wrapper footerの3行
wrapperのcolumnがnav center asideの3列にしたいのですが、
どうすれば、よろしいでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/02/21 08:10

「聖杯レイアウト」とは。 それに同じ質問されてます。 https://teratail.com/questions/323022 質問は編集すれば良いので解決した回答ではない投稿で自己解決したとしても やり方まずいです。 上記質問を「解決済み」から「受付中」に戻し、この質問を削除依頼し、 元の質問を編集したうえできちんと解決まで対応してください。
rasta

2021/02/21 08:31

古いものを編集するより、新しくトピを立てた方が、回答を得られる可能性が高いので。
m.ts10806

2021/02/21 08:35 編集

それは自分勝手な思い込みで自分勝手なやり方です。それに非推奨とされているマルチポストです。 質問編集すると質問一覧の「アクティブ」タブに上がってきます。 同じようなことしてると結局回答者も同じ人が見てるのでどんどん回答が得られにくくなります。
m.ts10806

2021/02/21 08:36

低評価理由に「過去に投稿した質問と同じ内容の質問」というのがある以上、 https://teratail.com/help/avoid-asking サイトとして推奨されていない行為であることが分かるかと。
guest

回答1

0

ベストアンサー

高さを指定しないと、つぶれてしまいます。

bodyに min-height を設定するか、

css

1body { 2 margin:0; 3 min-height: 100vh; 4 display:grid; 5 grid-template-rows:100px 1fr 100px; 6 grid-template-areas:"header" "wrapper" "footer"; 7}

nav center aside に内容を入れれば、その高さになります。


Gridのメリットが生かされてないように思います。
.wrapper で囲むならFlexboxでもシンプルに記述できます。

.wrapperなしでも聖杯レイアウトが可能なのがGridのメリットです。レスポンシブでレイアウトを変更するときに、.wrapperに縛られることなく自由にレイアウトできるのがGridのメリットなので。

html

1 <header></header> 2 <nav> 3 </nav> 4 <main> 5 </main> 6 <aside> 7 </aside> 8 <footer> 9 </footer>

css

1body { 2 margin:0; 3 min-height: 100vh; 4 display: grid; 5 grid-template-areas: 6 'header header header' 7 'nav main aside' 8 'footer footer footer'; 9 grid-template-rows: 100px 1fr 100px; 10 grid-template-columns: 50px 1fr 50px; 11} 12header { 13 grid-area:header; 14 border:1px solid gray; 15} 16nav { 17 grid-area: nav; 18 border:1px solid gray; 19} 20main { 21 grid-area:main; 22 border:1px solid gray; 23} 24aside { 25 grid-area:aside; 26 border:1px solid gray; 27} 28footer { 29 grid-area:footer; 30 border:1px solid gray; 31}

過去に同じ質問していたんですね。
ちなみに、grid-template-areas はIE非対応なので、IEにも対応させたいなら、Autoprefixerなどのツールを使用するといいでしょう。下記のようなonlineのツールもあります。

Autoprefixer CSS online

投稿2021/02/21 08:12

編集2021/02/21 08:29
hatena19

総合スコア33699

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rasta

2021/02/21 08:47

ご回答ありがとうございます。できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問