是"背景大小:覆盖"减少文件大小?

时间:2014-09-24 19:28:29

标签: css

对于示例我有1080x1920px尺寸图片,我的div是100x100px。那么“background-size:cover”会加载100x100px文件,还是1080x1920px,然后将它应用到div?如果我想覆盖我的div,我该如何减少图像文件大小?

1 个答案:

答案 0 :(得分:1)

background-size:cover =将背景图像缩放到尽可能大,以便背景区域被背景图像完全覆盖。背景图像的某些部分可能不在背景定位区域中的视野中

基本上它会放大,直到最内侧的边缘接触到侧面,这意味着一些图像可能会被切除,而不像100%所有图像都可见。

请参阅此LINK,例如


CSS3 background-size

这可以在CSS3中使用background-size

所有现代浏览器都支持此功能,因此除非您需要支持旧版浏览器,否则这是实现此目的的方法。

支持的浏览器:
Mozilla Firefox 4.0+(Gecko 2.0+),Microsoft Internet Explorer 9.0 +,Opera 10.0 +,Safari 4.1+(webkit 532)和Chrome 3.0+。 功能

.stretch{
/* Will stretch to specified width/height */
  background-size: 200px 150px;
}
.stretch-content{
/* Will stretch to width/height of element */
  background-size: 100% 100%;
}

.resize-width{
/* width: 150px, height: auto to retain aspect ratio */
  background-size: 150px Auto;
}
.resize-height{
/* height: 150px, width: auto to retain aspect ratio */
  background-size: Auto 150px;
}
.resize-fill-and-clip{ 
  /* Resize to fill and retain aspect ratio.
     Will cause clipping if aspect ratio of box is different from image. */ 
  background-size: cover;
}
.resize-best-fit{
/* Resize to best fit and retain aspect ratio.
   Will cause gap if aspect ratio of box is different from image. */ 
  background-size: contain;
}

特别是,我喜欢covercontain值,它们为我们提供了以前没有的新控制力。

您还可以将background-size: round与重复一起使用的含义{<1}}:

.resize-best-fit-in-repeat{
/* Resize to best fit in a whole number of times in x-direction */ 
  background-size: round auto; /* Height: auto is to keep aspect ratio */
  background-repeat: repeat;
}

这将调整图像宽度,使其在背景定位区域中适合整数次。


附加说明
如果您需要的大小是静态像素大小,则实际调整实际图像的大小仍然很明智。这既是为了提高调整大小的质量(假设您的图像软件比浏览器做得更好),也可以在原始图像大于显示的图像时节省带宽。