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

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

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

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

CSS

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

Q&A

解決済

1回答

6131閲覧

flex item の中で height:100% を flex item を flex container にせずしたい

lazex

総合スコア604

CSS3

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

CSS

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

0グッド

0クリップ

投稿2017/05/17 14:41

flexbox で↓のようなレイアウトについてです

イメージ説明

真ん中の高さは不定で要素に応じたサイズ、それ以外を 1:1 に分割します

html

1<style> 2 section{ 3 height: 500px; 4 border: 2px solid lightgreen; 5 display: flex; 6 flex-direction: column; 7 } 8 #top,#bottom{ 9 flex-grow: 1; 10 background: thistle; 11 } 12 .inner{ 13 background: mistyrose; 14 } 15</style> 16 17<section> 18 <div id="top"> 19 <div class="inner">x</div> 20 </div> 21 <div id="middle">=====</div> 22 <div id="bottom"> 23 <div class="inner">y</div> 24 </div> 25</section>

これだと x, y のある .inner の div は #top#bottom のサイズいっぱいになりません
単純に height:100% をすると、 #top#bottom のサイズではなくその親の section に対して 100% になります

一応 #top#bottomdisplay:flex して .innerflex-grow:1 することで対処はできます

html

1<style> 2 section{ 3 height: 500px; 4 border: 2px solid lightgreen; 5 display: flex; 6 flex-direction: column; 7 } 8 #top,#bottom{ 9 flex-grow: 1; 10 background: thistle; 11 display: flex; 12 } 13 .inner{ 14 background: mistyrose; 15 flex-grow: 1; 16 } 17</style> 18 19<section> 20 <div id="top"> 21 <div class="inner">x</div> 22 </div> 23 <div id="middle">=====</div> 24 <div id="bottom"> 25 <div class="inner">y</div> 26 </div> 27</section>

ですが、 #top#bottomdisplay:flex にせずに .inner#top#bottom いっぱいにすることって可能なのでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

これだと x, y のある .inner の div は #top や #bottom のサイズいっぱいになりません

単純に height:100% をすると、 #top や #bottom のサイズではなくその親の section に対して 100% になります

その状況が再現しません。

CSS

1 .inner{ 2 background: mistyrose; 3 height: 100%;/* ADD */ 4 } 5```**動くサンプル:**[https://jsfiddle.net/ostpzzzp/](https://jsfiddle.net/ostpzzzp/)

投稿2017/05/17 14:45

kei344

総合スコア69400

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

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

lazex

2017/05/17 14:56

調べたところ、 私のコードでは (about:blankで試していたため) doctype 宣言がなかったために、 Transitional モードになっていたことが原因でした 実際に動かす環境は html5 の strict なので、「親の section に対して 100% になる」問題なくなりましたが、 上下が mistyrose にならない問題がでてるようです 100% は flex-grow で伸びた分に適用されないのでしょうか
lazex

2017/05/17 14:57

> 上下が mistyrose にならない 上下に thistle のエリアが無い状態が求めるものです
kei344

2017/05/17 15:26

Firefoxで確認していたので気づきませんでしたが、Chromeのバグ(仕様の解釈の違い)のようです。 【html - flexboxの孫要素にheight:100%が効かない理由はなぜですか - スタック・オーバーフロー】 https://ja.stackoverflow.com/questions/21422/flexbox%E3%81%AE%E5%AD%AB%E8%A6%81%E7%B4%A0%E3%81%ABheight100%E3%81%8C%E5%8A%B9%E3%81%8B%E3%81%AA%E3%81%84%E7%90%86%E7%94%B1%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A7%E3%81%99%E3%81%8B
lazex

2017/05/17 15:31

ありがとうございます ちょうどFirefoxで動いてることに気づいてChromeのバグかな?と調べ始めたところでした
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問