html - 固定宽度的列表强制在容器上扩展

标签 html css html-table width overflow

显然是一个经典问题,但我发现的“解决方案”并没有奏效,包括关于 SO 的各种其他问题。

如果我的表格比它的容器宽,我希望我的表格单元格宽度保持固定,而不是调整大小以适应容器。

可重现的 HTML(<td> 由 PHP 生成):

<html>
  <head></head>

  <body>
    <table>
      <tr>
        <?php for($i=0;$i<15;$i++) { 
           echo "<td style='width:150px;border-right:1px solid black;'>".($i+1)."</td>"; 
        } ?>
      </tr>
    </table>
    <div style='background:chartreuse;width:150px'>This is 150px wide.</div>
  </body>
</html>

我尝试过的:

  • table-layout:fixed
  • span容器 display:inline-block设置
  • div带行内 block 的容器

看来应该有一个简单的方法可以让前面的代码生成一个溢出正文的表格。

有人可以帮忙吗?

编辑

我之前的写法可能看不太清楚,但是我想自己指定列宽。

我试图在不明确指定表格宽度的情况下执行此操作。只有 TD 会迫使 table 变宽,这(应该?)会迫使容器变宽。

此外,内联 CSS 仅用于示例目的。

最佳答案

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<div style="margin: 0pt auto; width: 980px;">
  <div style="500px;overflow:scroll">
    <table style="width: 100%; table-layout: fixed;">
      <tbody>
        <tr>
          <td style="width:150px;border-right:1px solid black;">This is 150px wide.</td>
          <td style="width:150px;border-right:1px solid black;">This is 150px wide.</td>
          <td style="width:150px;border-right:1px solid black;">This is 150px wide.</td>
          <td style="width:150px;border-right:1px solid black;">This is 150px wide.</td>
          <td style="width:150px;border-right:1px solid black;">This is 150px wide.</td>
          <td style="width:150px;border-right:1px solid black;">This is 150px wide.</td>
          <td style="width:150px;border-right:1px solid black;">This is 150px wide.</td>
          <td style="width:150px;border-right:1px solid black;">This is 150px wide.</td>
          <td style="width:150px;border-right:1px solid black;">This is 150px wide.</td>
          <td style="width:150px;border-right:1px solid black;">This is 150px wide.</td>
          <td style="width:150px;border-right:1px solid black;">This is 150px wide.</td>
          <td style="width:150px;border-right:1px solid black;">This is 150px wide.</td>
          <td style="width:150px;border-right:1px solid black;">This is 150px wide.</td>
          <td style="width:150px;border-right:1px solid black;">This is 150px wide.</td>
          <td style="width:150px;border-right:1px solid black;">This is 150px wide.</td>
        </tr>
      </tbody>
    </table>
    <div style="background:chartreuse;width:150px">This is 150px wide.</div>
  </div>
</div>
</body>
</html>

关于html - 固定宽度的列表强制在容器上扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7410321/

相关文章:

html - Bootstrap 4.1.3,下拉菜单不起作用

html - CSS 中带有静态图像的静态页脚?

html - 当您将鼠标悬停在列表中的链接上时,为什么会出现点?

html - 就可访问性而言,使用 % 而不是 em 有何缺点?

css 为 100% 宽度的 div 放置背景图片

html - HTML 电子邮件的表格背景图像 url 的替代方案(不使用 div)

html - 如何更改此 html 表格的列宽

html - 表格元素左右边框重叠

javascript - 如何修复带有嵌入式框架的页面布局

javascript - AdBlock 阻止我的网页之一