0

ブラウザに表示されるすべてのスペースを消費するレイアウトを作成しようとしています。html, body height 100%別のSO投稿で提案されたように設定しました。以下は私が試しているマークアップです

<div>
  <div class="header">
  </div>
  <div class="main">
    <div class="container">
        <div class="content"></div>
    </div>
  </div>
</div>

CSS:

html, body {
  height: 100%;
  max-height: 100%;
}
.header {
  height: 30px;
  background-color: #000;
}
.main {
  height: auto;
  padding-right: 0px;
  max-height: 100%;
  width: 100%;
  display: block;
  clear: both;
  background-color: #eee;
}

.container {
  width: 90%;
  overflow-y: scroll; 
  background-color: #ccc;
}
.content {    
  height: 2000px;
  width: 80%;
  background-color: #fff;
}

コンテンツのdivの高さにより、全身が大きくなるため、ブラウザのデフォルトのスクロールバーが表示されます。コンテンツdivのコンテンツを表示するためにcontainerdivをスクロールするように設定しましたが、それでもcontainerdivのスクロールバーは表示されません。どうすればこれを修正できますか。

これがjsfiddleです

4

1 に答える 1

2

編集:

デフォルトでheightは、div要素のはその内容に依存します(width親の幅が100%になるのとは異なります)。そのため、内部要素の高さをパーセンテージで指定する場合、親タグに明示的に定義された高さがない場合は正確ではありません(つまり、高さは継承できないため、高さはDOMの最上部まで定義する必要があります) 。

あなたの場合、 あなたはあなたの、そしてラッパーheight: 100%;にまたは他の高さを追加する必要があります.container.maindiv

修正されたフィドル

于 2013-03-02T13:38:57.867 に答える