动态的上肢滚动,上肢没有固定高度

时间:2019-02-08 12:07:10

标签: html css

在这个问题上,我一直不知所措。

我有一个div布局,其中某些div可以折叠或显示。在这些div下方是一个带有表格的div。我想要的是,当内容不再适合页面时,tbody可以滚动。我不能给tbody固定高度(我在示例中所做的就是显示我想要的滚动条)。桌子应该根据可用的高度进行调整,并且tbody在不适合的时候应该可以滚动,以防止页面拉伸。

我一无所知...

https://jsfiddle.net/cr1bat27/3/

function checkFilters(){
	var filters = document.getElementById("filterDiv");
  if(filters.style.display == "none"){
  	filters.style.display = "block";
  }
  else{
  	filters.style.display = "none";
  }
}
html,body {
    padding: 0;
    margin: 0;
    height:100%;
}
#mainPage{
    height:100%;
}
#leftContainer{
    float:left;
    width:50%;
    height: CALC(100% - 50px);
}
#rightContainer{
    position: absolute;
    right: 0;
    top: 50px;
    width:50%;
    height: CALC(100% - 50px);
    background-color: yellow;
}
#tabPanel {
    width: 100%;
    background-color: lightgrey;
    height: 50px;
}
#filterDiv{
  height: 300px;
}
#filters{
  background-color:grey;
}
table{
   width: 100%;
   overflow:hidden;
}
td{
  height: 100px;
}
tr:nth-child(even){
    background-color: #f2f2f2;
}
th{
  text-align: left;
}
#contentContainer{
  height: 100%;
}
tbody{
  display:block;
  overflow:auto;
  width:100%;
  height: 300px;
}
thead tr{
  display:block;
  height: 50px;
}
<div id="mainPage">
  <div id="tabPanel">
  </div>
  <div id="leftContainer">
    <div id="contentContainer">
      <div id="filters">
        <div>
          <a onclick='checkFilters();'>Anchor - click me</a>
        </div>
        <div id="filterDiv">
          I SOMETIMES TAKE UP SPACE
        </div>
      </div>
      <div class="table container">
        <table>
          <thead>
            <tr>
              <th>stuff</th>
              <th>more</th>
              <th>stuff</th>
            </tr>  
          </thead>
          <tbody>
            <tr>
              <td>info</td>
              <td>info</td>
              <td>info</td>
            </tr>
            <tr>
              <td>info</td>
              <td>info</td>
              <td>info</td>
            </tr>
            <tr>
              <td>info</td>
              <td>info</td>
              <td>info</td>
            </tr>
             <tr>
              <td>info</td>
              <td>info</td>
              <td>info</td>
            </tr>
          </tbody>
        </table>
      </div>
    </div>
  </div>
  <div id="rightContainer">
   IGNORE THIS RIGHT STUFF
  </div>
</div>

1 个答案:

答案 0 :(得分:1)

在CSS中使用“最大高度”而不是“高度”。

tbody{
  display:block;
  overflow:auto;
  width:100%;
  max-height: 300px;
}