fujtak
@fujtak (fujtak)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

ウィンドウを縮めても「見える範囲が狭まる」ようにするには

Q&A

Closed

解決したいこと

1画面(いわば1枚の写真のような、スクロールできない画面)を
どんなディスプレイでも画面いっぱいに表示できるWebサイトを作ろうとしています。
そこで、以下のようにhtml/cssを用い、heightについてマークアップしてみたのですが、
この方法では、ウィンドウを垂直方向に縮めた際にレイアウトが崩れてしまいます。
理想は、ウィンドウを縮めても「見える範囲が狭まる」ようになることなのですが、
何か上手くいく方法はありませんでしょうか?

自分で試したこと

html

<body>  
  <header>Header</header>
  <main>Main</main>
  <footer>Footer</footer>
</body>

css

html,body{
  height:100%;
}
header{
  height:10%;
}
main{
  height:80%;
}
footer{
  height:10%;
}
0

2Answer

ウィンドウを垂直方向に縮めた際にレイアウトが崩れてしまいます。

とはどういった感じで崩れているでしょうか?

ほぼ同様な書き方で、スクロールが出ないような作りにはなりました。

See the Pen Untitled by yotty (@yotty) on CodePen.

css.gif

個人的にはヘッダとフッタの高さが変わるのがあまり好きではないので、calcやflexboxを利用して、ヘッダとフッタの高さは固定してメインコンテンツだけ可変になる作りにすることが多いです。

See the Pen Untitled by yotty (@yotty) on CodePen.

See the Pen Untitled by yotty (@yotty) on CodePen.

あとは、こちらの質問も参考になるかもしれません。


最後に質問とは関係ないですが、タグが「HTML,CSS」のひとつにまとまってしまっています。「HTML」と「CSS」に分けていただければ幸いです。

0Like

Comments

  1. @fujtak

    Questioner

    丁寧なご回答ありがとうございます。
    言葉足らずで申し訳ありません…初投稿ゆえお許しください。今後はより具体的かつ明快な質問を心掛けます。
    「レイアウトが崩れる」とは、headerとfooterも変動してしまうという意味でした。
    そのため、ご回答の中にあった「calcやflexboxを用いてmainだけを可動にするやり方」によって解決しました。
    また、単位vh(これは便利ですね!)やタグの付け方なども勉強になりました。
    また機会があれば是非お願いいたします。

  2. 解決したようでよかったです!

Comments

  1. @fujtak

    Questioner

    ご回答ありがとうございます。
    今後はより具体的かつ明快な質問を心掛けます。

Your answer might help someone💌