你是对background-size
的,许多旧浏览器不支持。
对此的典型解决方案是使用附加的<div>
甚至是<img>
位于您想要拥有背景的元素后面的元素来模拟它。
这可以通过使用额外的标记简单地实现,但这个解决方案的缺点是意味着您将在所有浏览器中使用它,而不是background-size
属性。换句话说,这意味着为了旧浏览器而故意降级您的代码,这并不理想。
如果您想为支持它的浏览器使用 CSS 属性,您可以使用一些 Javascript 来生成上述标记,但前提是需要。这意味着现代浏览器可以愉快地使用background-size
,并且只有较旧的浏览器才会使用回退。
网络上有许多可用的 Javascript 解决方案(一个快速的谷歌出现了以下内容:http ://css-tricks.com/766-how-to-resizeable-background-image/等等),但更多重要的是你需要知道如何根据浏览器触发它。
这就是 Modernizr 的用武之地。您在问题中对 Modernizr 的描述并不完全准确。它的作用是在 HTML 标记中生成一组 CSS 类,并在 Javascript 中生成代表所有浏览器功能的匹配变量。这些是指示当前浏览器是否支持的布尔标志。
因此,使用 Modernizr,您可以检查浏览器是否支持 Javascript background-size
,并且仅在不支持时才运行替代的 javascript 函数。
if(!Modernizr.backgroundsize) {
//do stuff here to simulate the background-size property for older browsers.
}
希望有帮助。