私は他の解決策を見てきましたが、それらは私のために働いていません。私は高さを試しました:サイドバーで100%ですが、それでもうまくいきません。誰かが私を正しい方向に向けてくれませんか?サイドバーの色をページ全体に広げたいのですが。
HTML: http: //lrroberts0122.github.com/DWS/lab3/index.html
私は他の解決策を見てきましたが、それらは私のために働いていません。私は高さを試しました:サイドバーで100%ですが、それでもうまくいきません。誰かが私を正しい方向に向けてくれませんか?サイドバーの色をページ全体に広げたいのですが。
HTML: http: //lrroberts0122.github.com/DWS/lab3/index.html
ここでもう少し説明しようと思います。
高さを設定した場合:100%; cssでは、「100%何ですか?」と自問する必要があります。--...これは、要素の位置をどのように設定するかによって異なります。位置を設定するとき:絶対; その場合、ユーザーのブラウザビューの100%になります。そうでない場合は、要素の親の高さの100%になります。したがって、適切な高さまたは絶対位置をどこかに設定していない場合は、100%何も得られず、何もありません(デフォルトのコンテンツ調整済みの高さにロールバックします)。
それでは、親divの位置を絶対にして、 100%の高さに設定することを検討してみましょう(高さが100%に設定されている場合、比較的配置された子のサイドバーが同じ高さになるようにします)。ここにフィドル-ここで私たちが持っているものを見てみましょう:ユーザーのブラウザビューと同じ高さの親div(黄色)がありますが、その高さは固定されており、コンテンツに合わせて変更されません、次にサイドバー(赤)があります親の高さに一致すると(したがって、その高さはコンテンツイーザーに適合しません)、最後に、親divの高さと明らかに重なり、どこにも到達しない長いコンテンツテキスト(transparent bg)があります。良くない...
私たちは何ができる?(親のオーバーフローをスクロールに設定するのは良い考えではないようです)...問題を正しい方法で監視する必要があります:基本的に2つの兄弟divがあり、コンテンツの高さにうまく合わせる必要がありますが、同時にそれらの1つに兄弟の同じ高さを維持させたいとき->そのための簡単な簡単なcssソリューションはありません(私が知っていることです)。
最後に、私の提案は、小さなjqueryを使用することです。ここでは高速セットアップ、ここでは完全なサイトです。今すぐ書いてください:
var height = $('.content').height()
$('.sidebar').height(height)
そしてそれはうまくいくでしょう。親の絶対位置を残して100%の高さに設定しましたが、コンテンツパネルの実際のサイズとかなり一致するサイドバーの高さを設定しなかったことに注意してください。
お役に立てれば
@Onheiron、あなたの投稿は非常に役に立ちました。ありがとうございました!
短いコンテンツページがページの下部まで伸びておらず、サイドバーも短くなっていることに気付いたため、コードに1行追加しました。ここで、スクリプトは、どちら(.contentまたはbody)の高さが高いかを確認し、同じ高さを。に適用し.sidebar
ます。
HTML:
<body>
<div class="sidebar"></div>
<div class="content"></div>
</body>
JavaScript:
$(document).ready(function () {
var height1 = $('.content').height()
var height2 = $('body').height()
if (height1 > height2) {
$('.sidebar').height(height1)
} else {
$('.sidebar').height(height2)
}
});
CSS:
body, .sidebar {
height:100%
}
次に、デフォルトでcssになるため、ifステートメントのelse部分を失います。.content
エリアの高さがボディよりも低い場合は、スクリプトは必要ありません。
height:100%
正常に動作するはずですが、含まれているdivも100%にする必要があります。
#main-content {
background: url("../images/diagonal-noise.png");
}
#content {
background-color: #FEFEFE;
width: 920px;
margin-left: auto;
margin-right: auto;
border-left: 25px solid #79879E;
border-right: 25px solid #79879E;
padding: 20px;
height:100%;
}
#secondary-content {
background-color: #CED6E2;
width: 200px;
float: left;
border-right: 1px dotted #79879E;
padding: 10px;
margin: 10px 20px 10px -20px;
height:100%;
}