小编典典

使用 CSS 设置背景图像的大小?

all

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

我想做类似的事情:

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

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


阅读 116

收藏
2022-03-23

共1个答案

小编典典

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

特别是,我喜欢赋予我们以前没有的新控制力的cover和价值观。contain

圆形的

您还可以将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;
}

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


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

2022-03-23