2014-10-28 80 views
0

我有一个(有时)很长的表格,后面有一个div,包含应始终显示的控件。当表格超出容器时,表格需要滚动,让控件在桌面上的任何位置都可见。我无法将控件绝对定位到div的底部,因为表格并不总是很长。当表格很短时,控件应该位于表格的底部。可滚动的div与浮动列中的页眉和页脚

值得注意的是,父容器实际上并不是完全固定的高度。它位于angularJS模板中,当浏览器窗口调整大小时,高度重新计算并设置在div上。由于我的angularJS应用程序正在动态添加行,并有可能调整大小,所以拥有javascript解决方案远远不够理想。我希望与HTML/CSS和IE8兼容的东西。

当表短:

---------- container ------------- 
---- short table ---- 
row... 
row... 
--------------------- 
controls 
--------------------- 

whitespace 

---------------------------------- 

当桌长:

---------- container ------------- 
-- long table w/scroll -- 
row... 
row... 
row... 
row... 
row... 
row... 
------------------------- 
controls 
---------- end container --------- 

我成立了一个拨弄日这个迄今测试了这一点: http://jsfiddle.net/m3qrmzn7/1/

html:

<div id="container"> 
    <div id="left"> 
     <div id="leftContent"> 
      <table> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
      </table> 
     </div> 
    </div> 
    <div id="right"> 
     <div id="rightTableHead"> 
      barfoo.. 
     </div> 
     <div id="rightScrollable"> 
      <table> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
       <tr><td>foobar</td></tr> 
      </table> 
     </div> 
     <div id="rightTableFoot"> 
      barfoo.. 
     </div> 
    </div> 
</div> 

CSS:行与设定值表显示和

#container { 
    height: 250px; 
    background-color: #333; 
} 
#left { 
    margin-right: -100px; 
    width: 100%; 
    float: left; 
    background-color: #999; 
} 
#leftContent { 
    margin-right: 100px; 
} 
#right { 
    width: 100px; 
    float: right; 
    background-color: #ccc; 
    max-height: 100%; 
    position: relative; 
} 
#rightTableHead, 
#rightTableFoot { 
    background-color: #ddd; 
    height: 40px; 
} 
#rightScrollable { 
    overflow-y: auto; 
    max-height: 100%; 
    position: relative; 
} 
#rightTableFoot { 
    bottom: 0; 
    width: 100%; 
    position: absolute; 
} 

回答

0

计数数,如果选择了哪种方式你显示它。

<?php 
    $rows = request->rowCount(); 
?> 
<span id="rows"> <?php echo $rows; ?> </span> 

JS:

var x = document.getElementById("rows").innerHTML; 
if(x < X) 
{ 
    document.getElementById("controls").style.positionFixed = "bottom: 0px;"; 
} 
+0

我希望它是那么简单。我会在我的帖子中添加一些最初遗漏的细节。它位于angularJS模板中,父容器是“固定的”,因此当浏览器窗口调整大小时,高度将被重新计算并设置在div上。这意味着没有多少行可以做出决定。 – thatthatisis 2014-10-28 21:35:49

相关问题