svg – CSS背景使用“background-size:cover”不适合全高度

前端之家收集整理的这篇文章主要介绍了svg – CSS背景使用“background-size:cover”不适合全高度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在制作一个只显示SVG图像的页面,这里是要求:

>矢量应该占据整个窗口
>矢量应该保持其宽高比(在SVG文件本身中定义)
>矢量应该剪裁/剪辑,以防止歪斜

CSS …

body {
  background: url(/path/to/image.svg);
  background-size: cover;
}

…几乎完美的工作,除了当浏览器窗口变得太窄,而不是裁剪/裁剪。

这里有一些屏幕截图(请忽略dabblet留下的文物):

这里的窗口接近于原始图像的宽高比

这里窗口比宽高比“短”,并且图像正在裁剪(根据需要)。

这里的窗口比宽高比“窄”,而不是裁剪,图像是平铺(不需要的)。

这里有一些想法,我有…

>我可以以某种方式更改SVG图像以防止发生这种情况吗?
>我可以标记/样式页面来达到预期的效果吗?
>我宁愿保持在HTML / CSS的领域,但如果需要Javascript,那么就这样。

这是我正在使用的巧克力… http://dabblet.com/gist/6033198

解决方法

经过一些尝试和错误,这是我发现的。

添加(原始CSS):

html {
  height: 100%
}

提供了我正在寻找的原始规格。

此外,如果我想让图像在被裁剪时成为中心,我可以使用:

html { 
  background: url(path/to/image.jpg) no-repeat center center fixed; 
  background-size: cover;
}

最后,如果我想让它成为中心,始终保持长宽比,但不能裁剪(即一些空格是可以的)那么我可以做到:

body {
  background: url(/path/to/image.svg) no-repeat center center fixed;
  background-size: contain;
}

猜你在找的CSS相关文章