我想知道是否有一种方法可以使用jQuery或javascript来确定,给定一个元素,如果它的宽度是由css样式(内联,继承或直接)设置的,或者它是由大小/确定的其内容的长度。
答案 0 :(得分:4)
想到一个想法:
存储元素的.width()
删除该元素的所有子元素,将它们移动到其他位置,或者将它们设为display: none
查看元素的.width()
。如果它已经改变,它取决于内容。如果它没有改变,则使用CSS设置。
恢复孩子的display
财产或在必要时将其移回。
Here是一个非常原始原型,只删除了所有元素的内容:
function determineWidth(jQueryElement)
{
var widthBefore = jQueryElement.width();
jQueryElement.html(""); // Empty the element
var widthAfter = jQueryElement.width();
if (widthAfter != widthBefore)
var result = "The width depended on the content.";
else
var result = "The width did NOT depend on the content.";
alert("Before: "+widthBefore+" After: "+widthAfter+" - "+result);
}
块级元素有一个副作用:由于它们的宽度不依赖于内容,脚本将返回“...不依赖....”即使元素可能没有明确您可以根据需要在CSS中设置宽度。