我正在尝试使用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”属性?
答案 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标准)。