【发布时间】:2010-11-05 23:38:04
【问题描述】:
我有一个样式表,它定义了图像的默认宽度。当我使用 jQuery width() 读取图像宽度样式时,它返回正确的宽度。当我调用css("width") 时,它也会返回相同的宽度。但是如果样式表中没有定义宽度,函数css("width") 也将返回计算出的width() 值,但不会说undefined 或auto 或类似的东西。
有什么办法可以知道 CSS 代码中是否定义了样式?
解决方案适用于跨浏览器。感谢大家的帮助:
$(this).addClass("default_width_check");
var width = ($(this).width() == 12345) ? 'none-defined' : $(this).width();
var height = ($(this).height() == 12345) ? 'none-defined' : $(this).height();
$(this).removeClass("default_width_check");
.default_width_check {
width: 12345;
}
【问题讨论】:
-
有趣的问题。我想知道你为什么需要这个?
-
我认为这是 HTML 规范中定义的行为:如果未指定,元素的 width 属性将设置为实际元素宽度。棘手,有兴趣看看是否有任何解决方案
-
我有一个 CMS,它对图像和文本大小有严格的定义。但是,图像大小是在 css 中为 CMS 使用的每个特殊模板中的每个图像定义的。如果管理员滚动图像,我想显示 css 中定义的宽度和高度,以便用户知道如何裁剪/缩放图像。
标签: javascript jquery css