
DIV要素を作り、その中にテキストを配置しています。これの高さ(height)をCSSで次のようにしたいのですが。どのようにすれば良いでしょうか。
1.文章量が多く、画面外まではみ出したらDIV要素の高さをそれに追従させる。
2.文章が画面内に収まる場合、余ったスペースをDIV要素ですべて埋める。
DIV要素のheightを動的に変化させたいのでpxによる絶対値指定はしません。パーセント指定で100%にしてもうまくいかず、調べてみたところこれは親要素の値に依存するとのことでした。そこで
html, body {
height: auto;
}
#main {
height: auto;
}
としてみたところ、1.の「はみ出した場合のサイズ追従」は実現できましたが、2.の「余ったスペースを埋める」ことはできませんでした。逆に
html, body {
height: 100%;
}
#main {
height: 100%;
}
にすると2.の「余ったスペースを埋める」ことはできますが1.の「はみ出した場合のサイズ追従」はできません。この両方を実現することってできませんか?
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんなのでどうでしょう?
ウィンドウの高さよりdivの高さが小さければ、divの高さを変更します。
<script>
function f(){
if(window.innerHeight){h=window.innerHeight;}
if(document.documentElement && document.documentElement.clientHeight){
h=document.documentElement.clientHeight;
}
else if(document.body && document.body.clientHeight){
h=document.body.clientHeight;
}
if(document.getElementById){
a=document.getElementById('main');
if(a && a.style && a.style.height<h){
a.style.height=h+'px';
}
}
}
</script>
<body onload="f()" leftmargin=0 topmargin=0>
<div id="main" style="border:1px solid">
hoge<br>
</div>
</body>
No.3
- 回答日時:
理想はCSSのmin-heightだと思いますが、他の方が書かれているように対応していないブラウザがあります。
そこで私がよくやるのは、最低の高さを確保するために、1px x 1pxの透明GIFをDIV内に配置(align='right')、そのIMGタグ内にミニマムの高さを指定する、か、IMGの代わりに、何もないDIVタグをスタイルシートで高さを指定してfloatさせています。
IMGのほうがどのブラウザでもうまくいくとは思いますが、あまり美しい解決方法ではないかもしれません。(^ ^;)
No.2
- 回答日時:
こんにちは
<div></div>
<div id="main"></div>
や
<div id="main"></div>
<div></div>
などではなく<div id="main">がページコンテンツ全体を覆っているという前提の下でしたら
<style type="text/css">
html, body {
height: 100%;
margin:0px;
}
#main {
height: 100%;
overflow:auto;
}
</style>
でそれらしく見せることも出来ないこともないですけど・・・
こういう小手先の技ではなく王道で?
No.1
- 回答日時:
html,body{height:100%;margin:0;padding:0;}
#main{min-height:100%;}
こんな感じで。
ただし、min-heightは他のブラウザに比べてIEでの実装が遅れていてIE7からになります。
IE6がかなりの割合いを占めている間は使いづらいですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- HTML・CSS (Javascript)印刷するファイルに応じて印刷プレビュー画面で用紙を自動的に切り替えたい!! 2 2022/04/11 12:04
- HTML・CSS 【HTML】【CSS】【Swiper】 元の画像は横1200×縦600なのですが、実際のサイト上に反 5 2022/07/16 13:57
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- HTML・CSS img と p を縦中央に配置したいのですがうまくいきません。 2 2023/01/12 14:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FC2カテゴリ親文字だけ大きく、...
-
JQuery UIを使用したドラッグ&...
-
SeesaaブログにBlogPeople (...
-
CSSで背景画像が表示されない
-
スクリプト同士がケンカ?
-
HP作成/広告表示について
-
ユーチューブをホームページに...
-
top.pngを左に寄せて、すこし上...
-
R、G、Bのスライドバーで色を変...
-
困っています!!
-
windowsサイドバーに表示させる...
-
[CSS] 常にフッターは下部に表...
-
HTML/CSS 背景
-
css divの入れ子の背景画像
-
IEだけfloatがずれてしまう
-
divにfloatをかけているのです...
-
プルダウンメニューが設置でき...
-
IE6にてずれる
-
HTMLについて
-
HTMLに詳しい方に質問です。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スタイルシートで画面を上下に...
-
【CSS】floatで左右に並べた...
-
チェックボックスの背景色って...
-
CSS <div>の入れ子が反映さ...
-
HTMLですCSSです 画像のように...
-
CSSで背景を下までのばすには?
-
CSS のみのタブ切り替えについて
-
離れた場所にマウスオーバーで...
-
スクロール可能なチェックボックス
-
htmlのstyleのposition:relativ...
-
文字をクリックしたら別の文字...
-
スタイルシート(CSS)で、高さ...
-
行間
-
Ctrl+F(検索)の窓を出したいの...
-
CSSでフローとした際の親要素の...
-
CSSで(3)段組のページを作り...
-
html スクロール要素を下から表...
-
IE6のレイアウト崩れ
-
CSSでdivのheightを動的に
-
フッター上部に謎の隙間
おすすめ情報