【问题标题】:How do I create an HTML table with first column is fixed and next column horizontally scrollable如何创建第一列固定且下一列可水平滚动的 HTML 表格
【发布时间】:2012-08-06 07:43:18
【问题描述】:

我有一个表,它只有两列,我希望第一列是固定的,而另一列是水平滚动的。 表可以有很多行。可滚动应作为一个组应用于所有正确的列,而不是单个列。

以下是我的表结构

<table>
    <tr>
        <th>Header 1</th>
        <th>Header 2</th>
    </tr>
    <tr>
        <td>row 1,cell 1</td>
        <td>row 1,cell 2</td>
    </tr>
    <tr>
        <td>row 2, cell 1</td>
        <td>row 2, cell 2</td>
    </tr>
</table>

提前致谢。

【问题讨论】:

  • 您是否希望第二列中的单元格独立并在拖动每个单元格的滚动条时同时滚动,或者您是否希望将所有右侧单元格合并在一起,如在下面的答案中显示?这里是that basic fiddle
  • jsfiddle.net/thundercracker/Yn6K6/3;这不会滚动,如下所述,似乎默认情况下,表格不包含滚动条,如果内容更宽,甚至会强制 td 比其定义的宽度更宽。

标签: html css html-table


【解决方案1】:

如果您希望将谁的权限列作为一个单元格,您可以按如下方式设置表格:

<table>
     <tr>
         <th>Header 1</th>
         <th>Header 2</th>
     </tr>
     <tr>
          <td>row 1, cell 1</td>
          <td rowspan="2" class="scroll">spans across as may rows as rowspan, vertically</td>
      </tr>
      <tr>
          <td>row 2, cell2  </td>
      </tr>
 </table>

对于滚动,您的选项取决于您的目标浏览器,如果您不关心 IE 的非当前版本(8 及之前),那么您可以简单地将以下样式应用于 tall td:

  td.scroll {
      overflow-x: auto;
      overflow-y: hidden;
  }

如果你需要适应 IE 8,那么你会应用这种风格

  overflow: auto;

并且必须确保单元格的垂直内容没有高到足以导致垂直滚动条。如果您只想针对固定宽度的第一列,

   td:first-child {
         width: 120px
   }

会成功的。


编辑:

您正在寻找的效果比我最初想象的要难得多 - 覆盖表格的默认大小和行为需要花费很多时间。看起来表格对内部滚动有很强的抵抗力,实际上如果内部内容比td 的定义宽度更宽,即使表格比定义的宽度更宽并且overflow 设置为scrolltd 仍将扩展以适应内容。据我所知(如果我错了,请纠正我),制作td 滚动的唯一方法是添加max-width。此外,您想要的固定 with 列必须有一个 min-width 属性设置。这是我的实验:

http://jsfiddle.net/thundercracker/8CUsm/19/

我认为这不是很流畅,但是第二列将始终扩展到 max-width 属性中定义的宽度。

如果您尝试将此表设置为布局页面,我强烈建议您不要这样做。尽管它相当复杂,但这里有一个更流畅的替代布局;您可以尝试更改表格中的行数和正文的宽度,它的行为方式相同。

http://jsfiddle.net/thundercracker/adD3E/67/

我必须将部分设置归功于此线程:

CSS - Expand float child DIV height to parent's height

我实际上有点希望我错了 - 创建这样的布局并不需要这么多,所以如果有人有更简单的方法,请发布。

编辑:替代布局适用于所有主要浏览器,并且在 IE 7 中只有一些小问题,我认为可以轻松修复(尽管我已经错了一次),所以这是非常有效的跨浏览器。

【讨论】:

  • 您能解释一下th 单元格中colspan 的功能是什么吗?这是否意味着该表总共有 4 列宽?除此之外,很好的答案。
  • 你能把它弄乱吗...我试过了,但没有按预期工作
  • 抱歉,我发这个的时候很着急,也有点脑残:P,修复了ths
猜你喜欢
  • 2011-03-25
  • 2011-10-25
  • 2020-07-27
  • 2014-03-07
  • 1970-01-01
  • 2011-11-09
  • 1970-01-01
  • 2017-01-05
  • 1970-01-01
相关资源
最近更新 更多