jquery:关于width()方法的问题和调整td元素的大小

时间:2011-06-21 12:38:14

标签: jquery dom resize width html-table

我正在尝试使用jquery <td>方法调整.width()个元素的大小。

默认情况下,其中一个<td>元素的外观如下:

<td> <!-- computed width = 105px -->

使用firebug,当我使用.width(171)时,我可以看到元素的样式被修改:

<td style="171px;">  <!-- computed width = 148.767px -->

然而,看起来jquery似乎没有足够的空间来完全调整<td>元素的大小。

问题1a:为了完成元素的大小调整,文档/表格宽度是否应该自动增加?

问题1b:有没有办法强制调整<td>元素的大小以确保新计算的宽度与设置的值匹配?

.width()方法的reviewing the documentation时,我看到了:
- .width()获取“匹配元素集中第一个元素的当前计算宽度。” - .width( value )设置“匹配元素集中每个元素的CSS宽度。”

问题2:为什么setter和getter方法不一致,不应该.width( value )直接修改DOM宽度而不是修改CSS“width”属性?

1 个答案:

答案 0 :(得分:1)

Question 2: why are the setter and the getter methods inconsistent, shouldn't .width( value ) modify the DOM width directly instead of modifying the CSS "width" attribute?

这是因为jQuery对象不知道它运行的DOMElement是否具有W3.org中定义的width属性。并非所有DOMElements都具有width属性,但都具有可以设置的CSS width属性。因此,要维护标准,它会在css中设置width属性,而不是创建一个对某些DOME元素不具备的新属性(违反w3标准)。