我有一个样式表定义图像的默认宽度.当我用jQuery width()读取图像宽度样式时,它返回正确的宽度.当我调用css(“width”)时,它也返回相同的宽度.但是,如果在样式表中没有定义宽度,则函数css(“width”)也将返回计算的width()值,但不会说未定义或自动或类似的东西.
任何想法如何才能找出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; }
解决方法
我有一个解决方案的想法可能会工作.
在所有其他样式表之前定义一个名为default_width的类:
.default_width { width: 1787px } /* An arbitrary value unlikely to be an image's width,but not too large in case the browser reserves memory for it */
以确定图像是否具有宽度设置:
克隆它在jQuery中:element = $(“#img”).clone()
给克隆元素default_width类:element.addClass(“default_width”)
>如果它的宽度是1787px,它没有宽度设置 – 或者,当然是1787px宽,这是唯一的情况下,这种方法将无法工作.
我不完全确定这是否会起作用,但可能.编辑:正如@bobince在注释中指出的那样,您需要将元素插入到DOM中才能正确应用所有类,以便进行正确的宽度计算.