当前位置: 首页 > 知识库问答 >
问题:

带有HTML和CSS的表格滚动[重复]

程胡非
2023-03-14

我有一个类似的表格,我用数据填充它

<table id="products-table"  style="overflow-y:scroll" >
    <thead>
        <tr>
            <th>Product (Parent Product)</th> 
            <th>Associated Sites</th>
            <th>Actions</th>
        </tr>
    </thead>
    <tbody>
        @for (int i = 0; i < Model.Count(); i++)
        { 
        <tr>
            <td>
                <a href="Edit"><strong>@Model.ElementAt(i).Name</strong></a><br />
            </td>
            <td>
                <span class="lesser"></span>
            </td>
            <td>@Html.ActionLink("Edit Product", "Edit", "Products")<br />
                @Html.ActionLink("Associate Site", "Associate", "Products")
            </td>
         </tr>
        }
        <tr>
</tbody>
</table>

而CSS就是这样

    #products-table
{
     width: 200px;
    height: 400px;
    overflow:scroll;
}

但是scroll不起作用,我想固定桌子的高度,如果超过了,就使用scrollbar

共有3个答案

宣胜
2023-03-14

对于那些想知道如何使用多个标题实现Garry的解决方案的人,这是:

#wrapper {
  width: 235px;
}

table {
  border: 1px solid black;
  width: 100%;
}

th,
td {
  width: 100px;
  border: 1px solid black;
}

thead>tr {
  position: relative;
  display: block;
}

tbody {
  display: block;
  height: 80px;
  overflow: auto;
}
<div id="wrapper">
  <table>
    <thead>
      <tr>
        <th>column1</th>
        <th>column2</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>row1</td>
        <td>row1</td>
      </tr>
      <tr>
        <td>row2</td>
        <td>row2</td>
      </tr>
      <tr>
        <td>row3</td>
        <td>row3</td>
      </tr>
      <tr>
        <td>row4</td>
        <td>row4</td>
      </tr>
    </tbody>
  </table>
</div>
司空坚
2023-03-14

迟来的回答,另一个想法,但非常简短。

  1. 将标题单元格的内容放入div
  2. 修复标题内容,请参见CSS
table  { margin-top:  20px; display: inline-block; overflow: auto; }
th div { margin-top: -20px; position: absolute; }

请注意,由于匿名表对象,可以将表显示为内联块:

必须假定[在HTML表格树结构中]元素“缺失”,表格模型才能工作。任何表元素都会自动在其周围生成必要的匿名表对象。

/* scrolltable rules */
table  { margin-top:  20px; display: inline-block; overflow: auto; }
th div { margin-top: -20px; position: absolute; }

/* design */
table { border-collapse: collapse; }
tr:nth-child(even) { background: #EEE; }
<table style="height: 150px">
  <tr> <th><div>first</div> <th><div>second</div>
  <tr> <td>foo <td>bar
  <tr> <td>foo foo foo foo foo <td>bar
  <tr> <td>foo <td>bar
  <tr> <td>foo <td>bar bar bar
  <tr> <td>foo <td>bar
  <tr> <td>foo <td>bar
  <tr> <td>foo <td>bar
  <tr> <td>foo <td>bar
  <tr> <td>foo <td>bar
  <tr> <td>foo <td>bar
  <tr> <td>foo <td>bar
  <tr> <td>foo <td>bar
  <tr> <td>foo <td>bar
  <tr> <td>foo <td>bar
</table>
邴奇逸
2023-03-14

固定表头的表格

html prettyprint-override"><table cellspacing="0" cellpadding="0" border="0" width="325">
  <tr>
    <td>
       <table cellspacing="0" cellpadding="1" border="1" width="300" >
         <tr style="color:white;background-color:grey">
            <th>Header 1</th>
            <th>Header 2</th>
         </tr>
       </table>
    </td>
  </tr>
  <tr>
    <td>
       <div style="width:320px; height:80px; overflow:auto;">
         <table cellspacing="0" cellpadding="1" border="1" width="300" >
           <tr>
             <td>new item</td>
             <td>new item</td>
           </tr>
           <tr>
             <td>new item</td>
             <td>new item</td>
           </tr>
              <tr>
             <td>new item</td>
             <td>new item</td>
           </tr>
              <tr>
             <td>new item</td>
             <td>new item</td>
           </tr>
              <tr>
             <td>new item</td>
             <td>new item</td>
           </tr>
              <tr>
             <td>new item</td>
             <td>new item</td>
           </tr>
              <tr>
             <td>new item</td>
             <td>new item</td>
           </tr>
              <tr>
             <td>new item</td>
             <td>new item</td>
           </tr>
              <tr>
             <td>new item</td>
             <td>new item</td>
           </tr>
              <tr>
             <td>new item</td>
             <td>new item</td>
           </tr>
         </table>  
       </div>
    </td>
  </tr>
</table>
 类似资料:
  • 问题内容: 我有一张像这样的桌子,上面有数据 and CSS like that 但滚动不起作用,我想固定表格的高度,如果超出高度,则使用滚动条 问题答案: Table with Fixed Header Result This is working in all browser

  • 我有一个解决方案,通过它,我可以使用minor jQuery和CSS创建带有固定页眉/页脚的可滚动表,但我正在寻找一种方法,使其成为唯一一个跨浏览器兼容的CSS解决方案。 明确地说,我想要做的是只使用一个标记(它是有效的子标记,,,,,,,,),但采用一组满足以下条件的CSS规则: 必须在页眉/页脚/内容行之间保持列对齐 必须允许页眉/页脚在内容垂直滚动时保持固定 必须不需要任何jQuery或其他

  • 我试图创建一个滚动条隐藏的页面,但你仍然可以滚动或点击链接向下滚动。我可以隐藏滚动条,但我不能在100%上留下一页滚动。HTML CSS

  • 问题内容: 我正在宽度不相等的画布上绘制图形。每个画布是否都有自己的滚动条?我试图将所有画布放在一个div中,并指定最大宽度,但这没有用。是否可以将所有画布在页面上的可见宽度说成500像素,并且每个画布都有其滚动条以查看画布的整个宽度。 谢谢。 问题答案: 指定画布的总宽度,然后将其包裹在div中。将div设置为,并指定500px的宽度。然后,您应该具有滚动条,使您可以滚动并查看画布的隐藏部分。对

  • 问题内容: 我认为这个问题的答案是否定的……但是,有谁知道用HTML / CSS的方法来创建有序列表,而数字后面没有句点?或者,还是指定分隔符? 理想情况下,我不想为每个数字使用不同的类来制作列表样式的图像,但是到目前为止,我已经能够想到的就是这一切……这似乎非常语义化。 IE浏览器: 问题答案: 仅使用CSS(2.1)完全可以做到: 请记住,此解决方案依赖于:before伪选择器,因此某些较旧的

  • 问题内容: 我需要在网页上显示一个大表,并且需要防止第一列和第一行滚动。 我想动态设置此表的垂直大小(在某些静态大小的页眉/页脚页面内容之间),以使其尽可能高,而不必强制浏览器窗口具有垂直滚动条。 这仅需要在使用所有/任何版本的现代浏览器中工作:html,css,javascript,jquery 重要顺序: 具有许多表单字段,隐藏值,行的javascript折叠等的复杂表,稍后将添加 第一行将有