技术开发 频道

用Ajax实现表格动态滚动



二、如保实现动态表单
    为了使任何HTML元素(在本文中是表格)可滚动,需要使用一个可滚动的区域,在这里是DIV,这个元素应该比表格的实际高度小。如一个DIV的高度为100px,包含一个高度为200px的表格,这样才可以使表格滚动。下面的代码演示了div和table的使用:

<div style="height:100px; width:50px;
            overflow:auto; overflow-x:hidden;">
   <table style="height:200px;">
      <tr><td>vlad</td></tr>
   </table>
</div>



图3 产生滚动行为的例子代码

    要注意的是,如果我们将table和div分开写,那么就只有div滚动,而不是表在滚动。让我们先看看如下的代码:
<table style="height:50px; width:100px; overflow:auto;overflow-x:hidden;"> <tr><td><p>vlad 1</p></td></tr> <tr><td><p>vlad 2</p></td></tr> <tr><td><p>vlad 3</p></td></tr> <tr><td><p>vlad 4</p></td></tr> <tr><td><p>vlad 5</p></td></tr> </table>

<hr/> <div style="height:100px; width:100px; overflow:auto;overflow-x:hidden;"> <p>Vlad 1 </p> <p>Vlad 2</p> <p>Vlad 3</p> <p>Vlad 4</p> <p>Vlad 5</p> </div>
4显示了上述代码的运行结果:

图4 

我们注意到table的高度是50,但它仍然不滚动。
 
    上面代码的两个CSS属性:overflow auto和overflow-x:hidden,实际上是将滚动条显示在div的右侧。不过浏览器的CSS引擎必须支持这两个属性,否则,这个表将不会有滚动条。
    如果div中的内容落在了div的外面,可能的原因很多,如margin为负、使用了绝对位置、内容超过了width/height等等,而overflowoverflow-x属性只是描述了内容超过div的宽度应该如何去做。
   
这些CSS属性仅仅定义了divtable的外观,而不是带有滚动属性的JavaScript API接口。为了充分理解一个动态表单的实现,我们需要知道测量HTML元素在网页中的尺寸和位置的属性。这些属性可以通过JavaScript用可编程的方式来操作,更值得庆幸的是,这些API在目前的主要浏览器中都可以使用。
0
相关文章