Html 表格以 px 为单位指定列宽不起作用

Posted

技术标签:

【中文标题】Html 表格以 px 为单位指定列宽不起作用【英文标题】:Html table specify columns width in px does not work 【发布时间】:2011-05-28 04:26:33 【问题描述】:

我正在尝试制作一个可调整 ajax 列大小的表格,界面工作正常,但是当我调整列大小时,浏览器将表格放大到最大 100%,最终调整其他列的大小。 这两种解决方案我都试过了,但没有一种效果很好:

1.

min-width: 100%;
table-layout: fixed;
width: 100%;

使用此解决方案,我需要在(如有必要)超过 100% 之前调整任何单个列的大小;如果我只放大一列,例如,所有其他列都受到限制,它们不会保持原始宽度(就像我一样)

2.

table-layout: fixed;

有什么想法吗?

编辑: 这是相关的html代码:

<table class="resizable" id="TabellaDati" ><thead>  <tr>
    <th id="MDT_ThID"><span>ID</span></th>
    <th id="MDT_ThText"  style="width: 146px;">Text</th>
    <th id="MDT_ThTitle"  style="width: 148px;">Title</th>
    <th id="MDT_ThCssClass"  style="width: 83px;">CssClass</th>
    <th id="MDT_ThUrl"  style="width: 92px;">Url</th>
    <th id="MDT_ThOrdine">Ordine</th>
    </tr>
</thead>
<tbody> <tr>
    <td headers="MDT_ThID">MenuAlbo</td>
    <td headers="MDT_ThText">Albo Pretorio</td>
    <td headers="MDT_ThTitle">Albo Pretorio</td>
    <td headers="MDT_ThCssClass"></td>
    <td headers="MDT_ThUrl">/AlboPretorio</td>
    <td headers="MDT_ThOrdine">2</td>
    </tr>
</tbody></table>

还有 Css:

#TabellaDati 
    min-width: 100%;
    table-layout: fixed;
    width: 100%;

table 
    border-collapse: collapse;

【问题讨论】:

【参考方案1】:

几天前我回答了一个关于使用 css 设置列宽的问题。首先确保设置正确可能会有所帮助。How to set table column width.. 基本上我发现我需要设置表格宽度以及 th/td。之后 table-layout: fixed 应该可以正常工作。

编辑: 所以,我错过了您将单元格宽度设置为内联。所以我加载了你的标记和 CSS,看起来很棒。 (我正在使用 Chrome)

然后我很困惑问题是什么,所以我也意识到这很可能是 AJAX 问题。我对 AJAX 不是很感兴趣,但我仍在检查它。

更新: 是否有必须使用 Ajax 的理由?也就是说,通过使用 AJAX 而不是像这样的普通 javascript,您可以获得什么好处:

var colText = document.getElementById('MDT_ThText');  
function setWidth(w)   
 colText.style.width = w + "px";  

我觉得这会让整个世界变得更容易,并且它的格式与您拥有的标记和样式保持一致。

如果您坚持使用 AJAX,请提供您关于 AJAX 的代码。

【讨论】:

以上是关于Html 表格以 px 为单位指定列宽不起作用的主要内容,如果未能解决你的问题,请参考以下文章

列宽设置 - HTML 表格

html table 如何设置 使每行各列的列宽不一样??

CSS 表格列宽不适合某些屏幕尺寸

这个div的margin为啥不起作用?

以纳秒为单位的快速日期差异不起作用

DataGridView - 如何设置列宽?