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

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

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

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

3回答

86320閲覧

【HTML】子要素の高さを親要素と同じにしたい

og24715

総合スコア832

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2015/11/18 10:20

初歩的な質問になってしまいますがドコへ行っても納得のできる答えが書いてある記事が見つからないので質問します。
html、bodyにはwidth、heightともに100%にして、その中の.box-1のmin-heightを100%にして、中身がなくてもウィンドウの高さに合わせるようにしました。
.box-1の中に.box-2をつくり、これもウィンドウの高さになるようにheightを100%にしようとしましたがうまくいきませんでした。

わたしの考えは、
.box-1にheight: 100%してしまうと、中のコンテンツがウィンドウの高さよりも大きい場合、.box-1を突き出てしまうので.box-1にはmin-height: 100%をする必要がある。

ところが.box-2の高さをウィンドウの高さに合わせようと、height: 100%をしても高さがえられません。
なぜでしょうか。

heightとmin-heightの使い分けも曖昧になってきてしまったので合わせて教えていだけると幸いです。

html

1<!DOCTYPE html> 2<html> 3<head> 4 <meta charset="utf-8"> 5 <style type="text/css"> 6 * { 7 margin: 0 auto; 8 } 9 html, 10 body { 11 width: 100%; 12 height: 100%; 13 } 14 .box-1 { 15 width: 600px; 16 min-height: 100%; 17 background-color: red; 18 } 19 .box-2 { 20 width: 300px; 21 height: 100%; 22 background-color: blue; 23 } 24 </style> 25</head> 26<body> 27 28<div class="box-1"> 29 <div class="box-2"> 30 </div> 31</div> 32 33</body> 34</html>

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

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

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

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

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

guest

回答3

0

ベストアンサー

1.親要素のheightが明示されている場合、
子要素の高さは親要素のheightに対する%で指定されます。

2.親要素のheightが明示されていない場合(autoまたは無指定)の場合、
子要素の高さを%指定しても「auto」として解釈されます。

3.親要素のheightを指定せず、min-heightを指定した場合、
min-heightの値は子要素に継承されませんので、親要素の高さが明示されていない場合と同じ挙動となります。

ご質問の例では3のケースに該当しますので、.box-1をmin-height: 100%;、.box-2をheight:100%;としても、.box-2のheightは「auto」と解釈され、高さ100%にはなりません。

投稿2015/11/18 16:47

aKusano

総合スコア3763

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

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

og24715

2015/11/19 10:12

回答ありがとうございます! min-heightの値は子に継承されないのですか。 となると今回の例は実現できない、ということでよろしいでしょうか?
aKusano

2015/11/19 11:22

そうですね。親にmin-height、子にheightで高さ100%にすることは実現できないということになります。 最終的に作りたいデザインにもよりますが、別のアプローチを試みる必要があるかと思われます。
og24715

2015/11/20 02:28

なるほどありがとうございます
HHH-

2018/07/25 17:56 編集

height:に「 -webkit-fill-available;」を入れてみてください
guest

0

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style type="text/css"> * { margin: 0 auto; } html, body { width: 100%; height: 100%; } .box-1 { width: 600px; min-height: 100%; background-color: red; } .box-2 { width: 300px; height: height: -webkit-fill-available; background-color: blue; } </style> </head> <body> <div class="box-1"> <div class="box-2"> </div> </div> </body> </html>

投稿2018/07/25 17:56

HHH-

総合スコア28

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

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

0

スマホから書き込んでいます。

css

1* { 2 margin : 0 auto; 3 padding : 0; 4}

では如何でしょうか。

投稿2015/11/18 11:02

blackonyx

総合スコア354

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問