我正在开发一种以网格形式展示照片的响应式设计。照片本身可以是所有纵横比和尺寸。此外,放置它们的网格单元也不是固定宽度,它们会随着您调整浏览器的大小而缩放。此外,每个网格单元虽然在宽度和高度上是动态的,但大小相同,而与其中的图像无关。
为了在这种高度动态的情况下正确显示照片,我找到了一个有效的方法:每张照片基本上都是一个 div,并将图像设置为背景图像。为了在动态大小的网格内正确缩放图像的未知宽度/高度,我使用了 CSS3 的 background-size:cover 功能。
最终结果非常棒,它在 UI 和显示方面完全符合我的要求。尽管如此,我对这个解决方案的可访问性降低并不满意:它不是 SEO 友好的,也不是插件友好的(想想社交插件)。因此,我试图重现我所拥有的工作情况,但这次使用良好的旧 img 标签而不是 CSS 背景。
我知道有 IE8 及以下用于 background-size:cover 的 polyfill,但我不是在寻找那个,我正在寻找基于 img 标签的解决方案。我还发现了一些使用绝对定位技术以及 CSS 的 clip 属性的文章,但请记住,我的设计没有什么是绝对大小的。
我想我正在寻找的是一个 javascript 例程,它具有 background-size:cover 用于动态调整大小的逻辑,在源(图像尺寸)和目标(显示框)的大小都是动态的情况下。
是否有这样一个相当于 background-size:cover 的 JavaScript 可以在 img 标签上工作?