我正在尝试使用CSS解决方案滚动表格内容,同时保持标题固定。
CSS代码1:
<style type='text/css'>
* {
padding:0;
margin:0;
border:0;
}
#ListData {
display:block;
width:100%;
height:100%;
float:left;
background:#ffffff;
}
#ListData table {
width:100%;
}
#ListData thead {
position:relative;
width:100%;
height:20px;
overflow:auto;
background:#0099cc;
}
#ListData tbody {
position:relative;
width:100%;
height:300px;
overflow:auto;
}
</style>
此样式的输出如下: http://riotdesign.in/test.php
这在Firefox中运行良好(我现在不关心IE ...)
但是,如果我使用百分比而不是px或em:
<style type='text/css'>
* {
padding:0;
margin:0;
border:0;
}
#ListData {
display:block;
width:100%;
height:100%;
float:left;
background:#ffffff;
}
#ListData table {
width:100%;
}
#ListData thead {
position:relative;
width:100%;
height:10%;
overflow:auto;
background:#0099cc;
}
#ListData tbody {
position:relative;
width:100%;
height:50%;
overflow:auto;
}
</style>
这是我得到的: http://riotdesign.in/test2.php
我做错了什么? :)
答案 0 :(得分:2)
在某些时候,您的对象需要具有block
级父元素,并且具有确定的大小才能获得所需的滚动。
特别是在您的情况下,包含DIV ListData
或ListData table
需要具有特定高度。
在为高度和宽度添加百分比值时,请确保您知道“x%of what ...?”的答案。并在链条上跟随这个问题,直到你遇到硬边界的东西。如果你进入Body
元素并且仍然没有硬边界,你将无法获得所需的效果。
我在Firefox 3.5.xx中测试了这两个,并让tbody
滚动:
#ListData
{
display:block;
width:100%;
height:200px;
float:left;
background:#ffffff;
}
或
#ListData table {
width:100%;
height: 200px;
}
这也有效:
body
{
width: 100%;
height:600px;
}