代码之家  ›  专栏  ›  技术社区  ›  CSchulz cL83

忽略表属性宽度

  •  5
  • CSchulz cL83  · 技术社区  · 15 年前

    我的目标是生成一个包含表格的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;"

    4 回复  |  直到 8 年前
        1
  •  16
  •   ScottS    15 年前

    而不是 width: 23px 使用 min-width: 23px table-layout: fixed

    另外,如果您总是希望它们的大小相同,可以考虑使用 em 调整大小,以便在文本大小发生变化时,表格按比例上下缩放。我不知道你需要什么,但只是一个建议。

    编辑:更多跨浏览器解决方案。 IE6和IE7需要将“天”单元格中的所有数字用 div 而不是设计 td 任何宽度,样式 用一个 宽度:23px 最小宽度:23px

        2
  •  3
  •   RoToRa    15 年前

    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
  •  2
  •   Logan Young    15 年前

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

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

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

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

    HTH公司

        4
  •  0
  •   WhiteSamoyed    12 年前

    在一个类似的案例中,我通过在 <td>

    <td style="width:50em">
    
    推荐文章