【问题标题】:Table attribute width is ignored表格属性宽度被忽略
【发布时间】:2011-03-19 09:23:19
【问题描述】:

我的目标是生成一个带有表格的 html 文件并将它们导出为 pdf。
不幸的是,我无法让桌子按我的意愿行事。

表格的一部分应该显示一个时间刻度,最下面的行是天,上面的行是周、月和年,并且有一个预先计算的 colspan。

只有日期的 s 具有 CSS (style="width:...") 指定的宽度。

问题是宽度被完全忽略了,所以从 1 到 9 天的字段的宽度只有其他字段的一半。接下来,由于没有给定宽度,自动超过大小的字段,它们的大小也是错误的。

alt text http://img217.imageshack.us/img217/6617/scale1x.jpg

这里是生成的源: http://pastebin.com/JyiqhSzs

到目前为止我们尝试了什么:

  • 使用非 CSS (width="")
  • 也给其他字段一个计算宽度(colspan 值乘以一天的宽度)

还为表格设置style="table-layout:fixed;",但这没有效果。

所以我不知道如何让表格具有我想要的宽度?

【问题讨论】:

    标签: html css html-table width


    【解决方案1】:

    我通过将<td> 级别的宽度设置为比预期文本大一点的值,在类似情况下解决了同样的问题,例如:

    <td style="width:50em">
    

    【讨论】:

      【解决方案2】:

      您的真实页面中的style 属性是否也被错误输入为stlye

      更多提示:

      • 如果表格不适合整个页面,表格单元格缩小是正常的,这就是 HTML 表格的工作原理。
      • 改正错字后尝试table-layout: fixed
      • 如果仍然无法正常工作,您需要为每个单元格添加一个 div(或其他一些元素)并指定宽度
      • 如果字体不是您期望的大小(不,您不能将其强制为特定大小),则以像素为单位的宽度将不起作用。试试2ex
      • 与其在每个td 中设置样式,不如在样式表中设置。

      例子:

      <tr class="days"><td>1</td><td>2</td></tr>
      
      tr.days td {
        width: 23px;
      }
      

      【讨论】:

        【解决方案3】:

        使用min-width: 23px 代替width: 23px。它适用于 IE8 和 FireFox。我还没有想出一个让 IE7 不缩小个位数天数的神奇公式(正在研究它)。我知道 table-layout: fixed 是不需要的,而且肯定会导致任何可能工作的 IE7 显示出现问题。

        此外,如果您始终希望它们具有相同的大小,您可以考虑使用em 调整大小,以便在文本大小发生变化时,您的表格会按比例放大/缩小。我不知道你的所有需求,只是一个建议。

        编辑:更多跨浏览器解决方案。 IE6 和 7 需要将“天”单元格中的所有数字都用 div 包裹,然后不要使用任何类型的 td 样式宽度,divwidth: 23px 的样式 不是 min-width: 23px

        【讨论】:

        • min-width 也为我工作。知道为什么 width不起作用会很有趣。
        【解决方案4】:

        您不能只指定“width=...”,您必须更改 CSS 元素的显示方式...

        假设我们希望单元格为 30px 宽:

        style="width: 30px !important; display: block;"
        

        显示:块;基本上告诉 CSS 它必须根据 width: 和 height: 中给出的尺寸调整元素的大小,而不是基于元素中的实际内容。

        但是,这样做有一个小问题,即元素的内容可能会超出宽度和高度指定的范围,但在这种情况下,我认为这不会是一个大问题。

        HTH

        【讨论】:

        • 它对我不起作用。但我必须说,我只编辑了最后几行还是应该全部编辑?
        • 将更改应用于所有有问题的单元格,如果失败,添加填充:0 2px 0 2px !important;到风格。这将在单元格的左侧和右侧放置 2px 的额外空间。
        • 从 pastebin 下载了您的代码并摆弄了一下,我发现添加填充不起作用。如果您可以在“坏”单元格上更改为 colspan,则应该这样做,但这可能意味着必须编辑每个单元格以使其正确显示。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-11-30
        • 2021-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-28
        • 2019-05-27
        相关资源
        最近更新 更多