是否可以使用 CSS 设置背景图像的大小?
我想做类似的事情:
background: url('bg.gif') top repeat-y; background-size: 490px;
但是,这样做似乎是完全错误的......
如果您需要使图像更大,则必须在图像编辑器中编辑图像本身。
如果您使用 img 标签,您可以更改大小,但如果您需要图像作为其他内容的背景(并且它不会像您想要的那样重复),那不会给您想要的结果......
这可以在 CSS3 中使用background-size.
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
cover
contain
您还可以将background-size: round其与重复组合使用具有含义:
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; }
这将调整图像宽度,使其适合背景定位区域的整数倍。
附加说明 如果您需要的大小是静态像素大小,那么物理调整实际图像的大小仍然是明智之举。这既可以提高调整大小的质量(假设您的图像软件比浏览器做得更好),也可以在原始图像大于显示的图像时节省带宽。