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

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

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

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

CSS

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

Q&A

解決済

2回答

4351閲覧

子要素の高さを、高さが指定されていない親要素と同じ高さにする方法(height:100%で指定できない場合)

GiveAHand

総合スコア286

HTML

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

CSS

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

0グッド

0クリップ

投稿2016/07/28 08:28

ある、高さ指定のない親要素と高さを同じにする方法を探しています。

HTMLとしては、

HTML

1<div> 2 <div style="float:left"> 3 (メイン) 4 </div> 5 <div style="float:left"> 6 (サイトバー) 7 </div> 8</div>

このような2カラムの構図の場合、どうしてもメインのdivの文章に合わせて高さが高くなっていき、サイドバーの高さが短くなります。

このような場合、サイドバーの高さを、親要素目いっぱいにする方法は無いでしょうか?

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

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

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

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

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

guest

回答2

0

ベストアンサー

要素をtableレイアウトのようにできるdisplay:table;があります。
とくに制約がなければdisplay:flex;も使えると思います。

//html <div> <div> (メイン) </div> <div> (サイトバー) </div> </div> //css div { display: table; } div > div { display: table-cell; vertical-align: top; }

投稿2016/07/28 08:54

NatsumiOki

総合スコア1298

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

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

GiveAHand

2016/07/29 02:37

NatsumiOki様 ご回答ありがとうございます。 ただ、この方法だと、サイドバー部分はメインと同じ高さになりませんでした。 両方を包含する親要素の高さはメインと同じになったので、そういうのに使うのはいいのですが。。。
NatsumiOki

2016/07/29 03:29

中身が別にあってその高さを合わせたいのであれば、それは中の要素の組み方次第だと思います。 提示されているソースの要素だけでは再現しようがないのと、デザインによってやり方を考えることなのでこの情報だけだとアドバイスしづらいですね。
GiveAHand

2016/07/29 10:21

NatsumiOki様 いえ、それとは違っていて、 <div class="contants"> <div class="main"> 何か文章<br> 何か文章<br> 何か文章<br> 何か文章<br> 何か文章<br> 何か文章<br> 何か文章<br> </div> <div class="side"> メニュー1<br> メニュー2<br> メニュー3<br> </div> </div> このように、divの中に、mainとsideという2つのdivがfloat:left;で左右に並んでいる時に、左右のdivの高さを揃えたいという感じです。 でも、mainの文章が可変なので、heightを使わずに変えたいという感じです。
NatsumiOki

2016/07/29 16:54

そのHTML構造でもほとんど同じことなのですが、 http://codepen.io/mayo31/pen/bZjgBg これがダメなのですか? 実現したいことがよくわかりません。 もともとfloatがついているからfloatはやめたくないってことですか? もしfloatにこだわらなければならない理由があるのであれば、それで高い方に揃えるというのは、スクリプトを使わないと難しいでしょうね。
GiveAHand

2016/11/12 01:21

NatsumiOki様 お返事が大変遅くなりましてすみません。 あの時は気が動転していたようで、NatsumiOki様の提示してくれた内容の意図もよくの見込めていませんでした。。。 教えて頂いた方法が、私のやりたかったことです。 ありがとうございました!
guest

0

CSSのみでの対応は、ここで大体説明されています。
ただ、ブラウザのバージョンによっては対応していなかったりするので、
こんな感じのScriptで対応する方が、
問題が起きにくいと思います。

投稿2016/07/28 08:51

LibertyBell3

総合スコア1084

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

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

GiveAHand

2016/07/29 02:35

YukitomoNishino様 ご回答ありがとうございます。 ただ、元々サイトを少しでも軽くするためのやり方を探してまして、そのためにJQuery使ってしまうと本末転倒な部分がありまして。。。 そういうのだと、やっぱり難しいですかね。。。
LibertyBell3

2016/07/29 05:36

Script本体は、3k切っているファイルサイズですが、 jQueryはminでも90kとかあるから、それを危惧しているのでしょうか? 情報が少ないので、憶測になりますが、 大枠のレイアウトで高さを揃えたいというと、 サイドバーに背景色を付けたいのかな?と思うのですが、 それだったら、二つのdivをContainerで包んで、 その背景にサイドバーの幅と同じ画像を背景で指定するのが、 CSSのみでの対応以外では、一番軽いと思います。 数kで済みますし、バージョンを気にする必要もないですしね。
GiveAHand

2016/11/12 01:23

YukitomoNishino様 お返事が遅くなりましてすみません。 jQueryをへたに使うと、他のjQueryと競合したり、自由度が制限されたりと、過去、いろいろと苦労したので、できるだけ使わない方法を探しておりました。 すみません。 でも、この問題は解決できました。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問