用CSS设置背景图片的大小?

是否可以使用CSS设置背景图片的大小?

我想要做一些事情:

background: url('bg.gif') top repeat-y;
background-size: 490px;

但是,这样做似乎是完全错误的......


CSS2

如果您需要增大图像,则必须在图像编辑器中编辑图像。

如果您使用img标记,则可以更改大小,但如果您需要图像作为其他内容的背景(并且不会像您似乎想要的那样重复),那么这不会给您想要的结果。

CSS3释放权力

这可以在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与重复相结合的含义:

.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;
}

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


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


只有CSS 3支持,

background-size: 200px 50px;

但是我会编辑图像本身,以便用户需要加载较少,并且它可能比没有抗锯齿的缩小图像好看。


如果你的用户只使用Opera 9.5+,Safari 3+,Internet Explorer 9+和Firefox 3.6+,那么答案是肯定的。 否则,不。

background-size属性是CSS 3的一部分,但不适用于大多数浏览器。

为了您的目的,只需将实际图像放大一些。

链接地址: http://www.djcxy.com/p/75575.html

上一篇: Set size on background image with CSS?

下一篇: Can't see my celery logs when running beat