.width()
jQuery、.css('width')
jQuery 和.style.width
节点上的属性返回的值有什么区别?
我很好奇,因为在尝试将两个表格单元格的宽度设置为相等时,前两个给了我相同的错误答案。他们实际测量的是什么,为什么它与我.style
在浏览器中查看元素时在属性中看到的值不同?
.width()
jQuery、.css('width')
jQuery 和.style.width
节点上的属性返回的值有什么区别?
我很好奇,因为在尝试将两个表格单元格的宽度设置为相等时,前两个给了我相同的错误答案。他们实际测量的是什么,为什么它与我.style
在浏览器中查看元素时在属性中看到的值不同?
来自width
官方文档
.css(width) 和 .width() 的区别在于后者返回一个没有单位的像素值(例如,400),而前者返回一个没有单位的值(例如,400px)。当需要在数学计算中使用元素的宽度时,建议使用 .width() 方法。
我想说.css('width')
和.style.with
ascss()
方法用于设置样式对象属性之间没有区别。
.css('width')
/.width()
和之间的区别在于.style.with
jQuery 方法使用window.getComputedStyle( elem, null )
. 此方法用于在应用 CSS 和样式后读取实际属性。
补充克劳迪奥·雷迪的回答:现场查看差异:http: //jsfiddle.net/vovkss/kPXaB/
我有意cm
使用单位来证明的输出可以转换为像素(或其他单位),而始终是表示多个像素的整数值。.css('width')
.width()
请注意,.style.width
仅适用于内联样式。
HTML:
<div id="mydivInlineStyle" style="width: 10cm"><b>Inline style:</b>
</div>
<div id="mydivExternalStylesheet"><b>External stylesheet:</b>
</div>
CSS:
div {
width: 10cm;
border: 10px solid blue; padding: 11px; margin: 12px;
background: aqua; white-space: pre;
}
JS:
$('div').each(function(){
$(this).append(
'jQuery width(): ' + $(this).width() + "\n" +
'.css(\'width\'): ' + $(this).css('width') + "\n" +
'.style.width: ' + this.style.width
);
});
输出:
Inline style:
jQuery width(): 378
.css('width'): 378px
.style.width: 10cm
External stylesheet:
jQuery width(): 378
.css('width'): 378px
.style.width:
.width()
将为您提供应用
.css('width')
的内容将为您提供样式属性中的内容
.css('width')
返回附加单位的属性,而.width()
没有,它会给你以像素为单位的数字。
因此,如果您有一个宽度为 200px 的元素.css('width')
将返回“200px”,而.width()
将返回 200。
“预期宽度”与实际宽度也存在差异。.width()
将为您提供元素的内容宽度,.css("width")
将为您提供样式表预期的宽度。