滚动div高度溢出页脚并被隐藏

时间:2016-09-02 18:58:38

标签: html css

我试图实现一个可滚动的div,其内容不会在页脚后面溢出。有一个侧边栏有一个搜索,下面有另一个隐藏的div,显示下面显示的结果的过滤器选项。结果需要填充剩余的可用高度,如果没有足够的空间则滚动。它溢出的那一刻,所以我看不到底部的结果,因为它们隐藏在页脚后面。我很难让结果div只填充剩余的空间。

HTML:

models.py

的CSS:

<div id="header">
header
</div>
  <div id="map-wrapper">
    <div id="map-sidebar">
      <div id="map-search">
        <input id="search" type="text" class="form-control" placeholder="Enter location" />
        <div id="filters">
          <input/>
          <input/>
          <input/>
        </div>
      </div>
      <div id="map-results">
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
      </div>
    </div>    
    <div id="map"></div>  
  </div>
  <div id="footer">
  footer
  </div>

的jsfiddle:     https://jsfiddle.net/me6nceca/

感谢您的帮助

3 个答案:

答案 0 :(得分:0)

您已在所有div上设置属性,使其具有1 px纯红色边框。从您的主要CSS中删除它,您将看到地图结果显示全屏,没有干扰。

如果你想在某些div上使用红色边框,请创建一个类:

.redBorder {
   border: 1px solid red;
}

并将其添加到您想要镶边的div。

由于您将地图设置为&#34; left:250px;&#34;,您还需要为您的页脚声明它,使其宽度与地图相同(因此不会与地图重叠) )。请参阅更新的小提琴:https://jsfiddle.net/john_h/me6nceca/2/

此红色边框可能对您很重要,因此请将该类添加到您想要的特定div中。

CSS:

.redBorder {
   border: 1px solid red;
}

#map-wrapper {
  position: fixed;
  top: 60px;
  bottom: 30px;
  left: 0;
  right: 0;
  width: 100%;
}

#map {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 250px;
  background: blue;
}

#map-sidebar {
   width: 250px;
   height: 100%;
}

#map-search {
    margin: 15px;
}

#map-results {
   height: 100%;
  overflow-y: scroll;
  border: 1px solid purple;
}

#header {
  height: 60px;
  top:0;
  left:0;
  right:0;
  position: fixed;
  text-align: center;
}

#filters {
  display: none;
}

#footer {
  height: 30px;
  bottom: 0;
  left: 250px;
  right:0;
  position: fixed;
  text-align: center;
  width: 63%;
}

HTML:

<div id="header">
header
</div>
  <div id="map-wrapper">
    <div id="map-sidebar">
      <div id="map-search">
        <input id="search" type="text" class="form-control" placeholder="Enter location" />
        <div id="filters">
          <input/>
          <input/>
          <input/>
        </div>
      </div>
      <div id="map-results">
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
          <p>content</p>
      </div>
    </div>    
    <div id="map"></div>  
  </div>
  <div id="footer">
  footer
  </div>

只需将redBorder类添加到您想要红色边框的任何位置。

答案 1 :(得分:0)

尝试更新此内容:

#map-results {
   height: 80%;
  overflow-y: scroll;
  border: 1px solid purple;
}

答案 2 :(得分:0)

#map-results的CSS中使用此代码:

height: calc(100% - 60px);