我需要我的表格单元格宽度为100px,但它们的宽度为112px(铬合金为112,FF为113,IE10为112.5).
里面有足够的空间:
这些是应用于td的样式
一块html:
<tr> <td class = 'col_body_dates'>12.12.2013<br/>20.12.2013</td> <td class='col_body_status cell_status_1'>в процессе</td> <td class='col_body_score'><input id = '7623373922438661459' value = '0'></td> ... ... </tr>
如何制作所需尺寸? css和实际尺寸之间的差异总是一样的……
我错过了什么?
是的,我试过了:
> Table width is longer then the pixels specified?
> Why is browser showing td’s larger than my specified width property?
JSFiddle:http://jsfiddle.net/3hFk7/
解决方法
你的桌子不是固定的宽度.单元格将始终自动调整大小以适应整个表格的宽度.
除非您申请:
table{ table-layout:fixed; }
仅当列的总和等于表的总宽度时,才可以设置列的宽度.
使用列分组在表上手动设置列宽:
<colgroup> <col span="1" style="width: 100px;"> <col span="1" style="width: 100px;"> <col span="1" style="width: 100px;"> </colgroup>
注意:使用样式而不是宽度,因为HTML5中的宽度已折旧.
Cellspacing和Cellpadding
如果未指定值,则将使用用户浏览器指定的默认值.在表格方面,这并不总是0.
如果在表上默认cellspacing和cellpadding,则可以使用padding属性控制css中每个单元格的填充:
CSS
th,td { padding:5px }
CSS 2.1中非CSS表示提示的优先级
规范说:“UA可以选择在HTML源文档中表示表示属性.如果是这样,这些属性将被转换为特定于等于0的相应CSS规则,并被视为在作者样式表的开头插入它们.因此,它们可能会被后续的样式表规则所覆盖.“
因此,应用的任何作者样式表中的任何相关设置都将覆盖cellspacing的效果.该属性将表的每个单元格的填充(在每个方向上)设置为指定的值(以像素为单位).所以,如果你设置例如对于特定的单元格填充 – 右:0,它将在其他方向上具有正确的填充和4px填充.
带有cellpadding和cellpadding的表:
<table cellpadding="10" cellpadding="10"> <tr> <th>Head 1</th> <th>Head 2</th> </tr> <tr> <td>Cell 1</td> <td>Cell 2</td> </tr> </table>