次のように解決できると思います。
.page {
background-color: #8f8;
min-height: 100%;
width: 80%;
}
.header {
background-color: #fdc;
overflow: hidden;
}
.content {
background-color: #ccf;
overflow-y: auto;
height: 100%;
width: 100%;
/*word-wrap: break-word;*/
}
わかりました、私がやったこと:
- ページ: 高さのサイズが本当にわかっている場合は、単純に高さを 200px に設定できますが
min-height: 100%
、ページがすべてのスペースを埋めるように追加する方が理にかなっています。
- ヘッダー: コンテンツが変更されたときにヘッダーのサイズを変更できるようにするには、オーバーフローを非表示に設定する必要があります。これにより、あらゆる種類のスクロールの表示が回避されます。もちろん、それは div のようなブロック要素でなければなりません
display:block
。
- コンテンツ: ここでは、高さをスペースの 100% として配置し、必要な場合にのみ垂直スクロールの可視性を許可し、表示するコンテンツが水平スクロールを表示できる場合にのみ単語を区切ります。
最後に、ページが一番下に表示されないように、ヘッダーをコンテンツ div の一部として配置します。詳しくはお尋ねください。
更新:これは私がテストした例です。
UPDATE2
私が得た最高のものはこれです:
.page {
background-color: #ccf;
max-height: 100%;
width: 80%;
overflow: hidden;
}
.header {
background-color: #fdc;
overflow: hidden;
}
.content{
overflow-y: auto;
height: 100%;
word-wrap: break-word;
}
唯一の問題は、スクロールしているのはコンテンツだけでなくすべての「ページ」要素であるとスクロールが認識しているため、スクロールの最後の矢印が表示されないことです。これはjavascriptを使えば解決できると思いますが、cssではこれ以上の解決策はないと思います。
Javascript の可能な解決策:
$(window).resize(function() {
resizeContent();
});
$(document).load(function(){
resizeContent();
});
function resizeContent(){
$('.content').height($(".page").height()-$('.header').height());
}
最終的な解決策へのリンクはここにあります