![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
お世話になります。
親要素のdivは縦100%になるのですが、
入れ子のdivが縦100%にならず困っております。
検証ブラウザは、IE6、IE7、FF2、Safariです。
お分かりの方、ご教授をお願いいたします。
▼HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<title>test</title>
<style type="text/css">
<!--
html { height:100%; }
body { height:100%; margin:0; padding:0; }
#wrapper {
background: #99CC00;
width:500px;
margin-left:auto;
margin-right:auto;
min-height:100%;
}
#wrapper-inner {
background:#CCFF00;
width:450px;
margin-left:auto;
margin-right:auto;
min-height:100%;
}
#contents {
background: #FFFFCC;
width:400px;
margin-left:auto;
margin-right:auto;
min-height:100%;
}
* html #wrapper { height: 100%; }
* html #wrapper-left { height: 100%; }
* html #wrapperA { height: 100%; }
-->
</style>
</head>
<body>
<div id="wrapper">
<div id="wrapper-inner">
<div id="contents">
テスト
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
</div>
</div>
</div>
</body>
</html>
No.8ベストアンサー
- 回答日時:
こんにちは。
勘違いだったらすみません。もしもdivを3重にしているのが背景のためなら多分下のでいけると思います。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "?http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="?http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS" />
<title>test</title>
<style type="text/css">
<!--
html {
height:100%;
}
body {
height:100%;
margin:0;
padding:0;
text-align:center;
background:url(イメージ名.jpg) center repeat-y;
}
#contents {
width:400px;
margin-left:auto;
margin-right:auto;
text-align:left;
}
-->
</style>
</head>
<body>
<div id="contents">
テスト
<br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br />
テスト
</div>
</body>
</html>
これで横500px、縦1pxとかで画像を用意して、ソースのイメージ名のところをその画像名にしてやればいけるとおもいます。
(上だと拡張子がjpgになってます)
ご回答ありがとうござます。
bodyに背景画像の場合、下記アドレスの様な1pxのずれが生じるため、
div入れ子の中央寄せ、縦100%を試行錯誤しております。
http://okwave.jp/qa2832295.html
No.7
- 回答日時:
こんにちは No.6です
>レイアウトの中央配置という訳ではないのです。
こちらこそ語弊を生むような回答をしてしまって申し訳ないm(--)m
text-alignとoverflowは気になったので付け加えただけですので・・・
メインは背景色100%の方です(--;)
とりあえずOperaでスクロールの出た状態からスクロールのなくなる高さまで拡げたらスクロールバーが残ってしまうという問題点は残ってますがIE6,Firefox,Operaでは背景色100%できてますけど、そちらではどうですかね?
度々のご回答をありがとうございます。
下でも書かせて頂いたのですが、
ブラウザの縦100%の表示自体は問題ないのですが、
コンテンツが多く画面を下へスクロールした場合、
背景が途切れてしまう問題がでてしまうのです。
(この症状はIE7、FF2、Safariです。Opera未確認)
▼スクロール前
http://www.geocities.jp/ajax3210/01.gif
▼スクロール後
http://www.geocities.jp/ajax3210/02.gif
ちなみに、コンテンツ部の最下部が分かりやすいように
最下部に「テスト」の文字を入れました。
▼HTML
<body>
<div id="wrapper">
<div id="wrapper-inner">
<div id="contents">
テスト
<br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br />
テスト
</div>
</div>
</div>
</body>
※みなさんの回答で、表示的に縦100%がクリアしていますので、
この問題は新しくトピックスをたてなおした方がいいかもしれませんね。。。
No.6
- 回答日時:
こんにちは
IE6,Firefox2,Operaしか持っていないのでIE7,Safariでは未確認ですが・・・
こういうことですか?
IE6では左に配置されたままだったのでbodyにtext-align:centerつけて
contentsにtext-align:leftつけてます
あと縦スクロールつけるそうなのでcontentsにoverflow:autoをつけてます
Operaでは高さの狭いところから拡げるとちょっと縦スクロールが出たままになりますけど・・・
<style type="text/css">
<!--
html { height:100%; }
body { height:100%; margin:0; padding:0; text-align:center;}
#wrapper {
background: #99CC00;
width:500px;
margin-left:auto;
margin-right:auto;
min-height:100%;
height: 100%;
}
#wrapper-inner {
background:#CCFF00;
width:450px;
margin-left:auto;
margin-right:auto;
min-height:100%;
height: 100%;
}
#contents {
background: #FFFFCC;
width:400px;
margin-left:auto;
margin-right:auto;
min-height:100%;
text-align:left;
height: 100%;
overflow:auto;
}
-->
</style>
ご回答ありがとうございます。
>こういうことですか?
>IE6では左に配置されたままだったのでbodyにtext-align:centerつけて
>contentsにtext-align:leftつけてます
いえ、#wrapperの縦100%の背景色はうまく表示されているのですが、
その中にある#wrapper-innerや#contentsが、縦100%の背景色が出ない(途中で途切れている)という事です。
なので、レイアウトの中央配置という訳ではないのです。
質問内容が言葉足らずですみません。。
引き続き、ご回答をお待ちしております。
No.5
- 回答日時:
#2のお礼にあった問題点を勘違いしていました。
全然解決してませんでしたね。失礼しました。
この問題の解決策はわからないです。
No.4
- 回答日時:
#wrapperA だけでなく
#wrapper-left も #wrapper-inner に修正してます。念のため。
度々のご回答をありがとうございます。
こちらの記述ミスでお手数をおかけしております。
ご指摘のCSSを修正しても同じ症状ですね。困りました。。。
ちなみに、ご指摘の「* html 」はスターハックというCSSハックを利用しています。
min-heightはFirefoxなどのモダンなブラウザには対応していますが、
IEが未対応な為、スターハックでheightを行いました。
No.3
- 回答日時:
* html #wrapper { height: 100%; }
* html #wrapper-left { height: 100%; }
* html #wrapperA { height: 100%; }
これを
#wrapper { height: 100%; }
#wrapper-inner { height: 100%; }
#contents { height: 100%; }
このように修正すると大丈夫だと思います。
(SafariはMacないんで確認してませんが)
html要素は最上位ですから * html という書き方は間違いです。(なんかのcssハックでしたっけ??)
No.2
- 回答日時:
まず、#contentsの内容の高さが計算されます。
heightはautoですのでmin-heightを処理しますが、%指定されていますので
包含ブロック(#wrapper-inner)のheightを参照しますが
#wrapper-innerには「heightが明示されていない※」ので、
#contentsのmin-heightはautoとして扱われ、内容にあわせた高さになります。
同様に#wrapper-innerの高さもautoに。
#wrapperの高さを計算する段になって、初めて包含ブロック(body)の高さが明示されているので、100%になります。
※
http://www.y-adagio.com/public/standards/tr_css2 …
パーセントは生成されるボックスの包含ブロックの高さに関して計算される。包含ブロックの高さが明示的に指定されない場合,すなわち,内容の高さに依存する場合は,パーセント値は'auto'と同様に解釈される。
とりあえず全部height:100%にしてはだめなんですか??
ご回答ありがとうございます。
#wrapper、#wrapper-inner、#contentsに
height:100%を追加した所、うまく表示はされるのですが一点問題がありました。
▼問題点
ブラウザの高さを縮め縦スクロールバーが出る状態にし(コンテンツが長い場合を想定)、下へスクロールすると背景色が途切れてしまいます。
IE7、FF2、Safariでこの現象がおこります。
どうにか解決したいと思いますので、
どうぞよろしくお願いいたします。
※「* html #wrapperA」は、「* html #contents」でしたね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- HTML・CSS imgとpを縦・横に中央揃えする 1 2023/01/17 11:30
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
aタグに直接style=""で:hoverを...
-
CSSのtransform: translate(-50...
-
<h1>タグの後の行間を詰めたい。
-
ホームページビルダー 空白の...
-
なぜ左に寄っているの?
-
HTMLフォームのSELECTの幅を一...
-
INPUT TEXT内の文字位置を指定...
-
text-alignの解除の方法
-
パソコンのみで反映される余白...
-
Formタグのブロックの高さについて
-
macとwindowsのレイアウト崩れ...
-
インラインフレームの表示位置...
-
div入れ子による height100%
-
cssでheight: auto;を指定して...
-
CSSで見出し(タイトル)行の右...
-
IEでCSSの中央寄せが効かない
-
エクセルでサイズに合ったもの...
-
htmlでテーブル内にテキストボ...
-
Excelの列の幅(ピクセル)につい...
-
Excel で等間隔で縦線を引きた...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSSのtransform: translate(-50...
-
aタグに直接style=""で:hoverを...
-
HTMLフォームのSELECTの幅を一...
-
<h1>タグの後の行間を詰めたい。
-
なぜ左に寄っているの?
-
インラインフレームの表示位置...
-
text-alignの解除の方法
-
CSSでh1とその下の文字との行間...
-
Formタグのブロックの高さについて
-
端から端まで横線を引きたい
-
FireFoxで見るとブラウザの幅に...
-
macとwindowsのレイアウト崩れ...
-
ホームページビルダー 空白の...
-
<legend>で表示されるタイトル...
-
INPUT TEXT内の文字位置を指定...
-
CSSで、height:100%の中央寄せ
-
CSSの設定
-
テキストボックスの様に文字の...
-
フッターだけが真ん中に行って...
-
スタイルシートでh1の属性行間...
おすすめ情報