使用Modernizr检测内联元素的最大宽度

时间:2013-05-09 14:36:54

标签: jquery image responsive-design modernizr

原因(对不起,我很啰嗦,我知道)

这可能是一个棘手的或不寻常的请求,但在我管理的网站上,我有很多页面包含存储在表格中的图像。用户将图像放在那里以获取字幕或仅确保布局符合预期。我的大多数用户都不够精明,无法使用DIV,因此我的桌子永远不会消失。

我正在努力使我的网站响应,但我在这些图片中遇到的一个问题是,当图像在表格中并且视口大小调整时,浏览器的行为会有所不同。例如,Firefox如果嵌套在表中,则不会使用最大宽度100%缩放图像。 According to this previous question,这部分是因为没有关于嵌套在内联元素中时如何处理图像的说明。

我找到解决此问题的唯一方法是从img标记中提取图像的宽度/高度,并在CSS中将宽度设置为100%。有了这个,Firefox就会不断缩小图像,即使它们位于表格单元格中。 Here's an example of the type of thing I'm trying to fix。 Drupal / CKEditor喜欢将图像的宽度放在样式标记中,我需要我的CSS / JS来修复它。

问题

我只希望我的CSS / JS修复程序适用于不支持内联元素中的最大宽度的浏览器。有没有办法在Modernizr中测试?在我网站的JS的当前迭代中,我只是使用Modernizr进行浏览器检查以查看用户是否正在使用firefox,然后在检测到时应用修复。对于那些好奇的人,我就是这样做的(source for the firefox check)。

Modernizr.addTest('firefox', function () {
 return !!navigator.userAgent.match(/firefox/i);
});

jQuery('.firefox #zone-content img').each(function(){
    jQuery(this).removeAttr('width');
    jQuery(this).css('width', '');
});

我希望有一种简单的方法可以重写这个,所以我不必使用浏览器检测,但我对modernizr addTest API的理解是有限的。希望其他人创造出类似的东西并分享他们的知识。

0 个答案:

没有答案
相关问题