是否可以用CSS设置背景图像的大小?
我想做的事情是:
background: url('bg.gif') top repeat-y;
background-size: 490px;
但这样做似乎是完全错误的……
是否可以用CSS设置背景图像的大小?
我想做的事情是:
background: url('bg.gif') top repeat-y;
background-size: 490px;
但这样做似乎是完全错误的……
当前回答
你可以使用两个<div>元素:
一个是容器(它是您最初想要的容器) 背景图像出现在)。 第二个包含在。您将其大小设置为 背景图像(或您希望显示的大小)。
然后将包含的div设置为绝对位置。这样它就不会干扰包含div中的项目的正常流动。
它使你能够有效地使用精灵图像。
其他回答
为了支持@tetra给出的答案,我想指出,如果图像是SVG,那么调整实际图像的大小是不必要的。
由于SVG文件只是XML,您可以指定希望它在XML中显示的大小。
但是,如果您在不同的地方使用相同的SVG图像,并且需要使用不同的大小,那么使用background-size非常有用。SVG文件本来就比栅格图像小,用CSS调整大小非常有用,而且我知道不会有任何性能损失,当然质量也几乎没有损失。
这里有一个简单的例子:
<div class="hasBackgroundImage">content</div>
.hasBackgroundImage
{
background: transparent url('/image/background.svg') no-repeat 10px 5px;
background-size: 1.4em;
}
(注:这适用于我在OS X 10.7与Firefox 8, Safari 5.1和Chrome 16.0.912.63)
不可能的。背景总是尽可能的大,但是你可以用background-repeat来阻止它重复自己。
background-repeat: no-repeat;
其次,背景不会进入框的边距区域,所以如果你想让背景只在框的实际内容上,你可以使用边距而不是填充。
第三,你可以控制背景图像的起始位置。默认情况下,它是一个框的左上角,但你可以通过background-position来控制它,就像这样:
background-position: center top;
或者
background-position: 20px -14px;
CSS精灵经常使用负定位。
只需有嵌套的div跨浏览器兼容
<div>
<div style="background: url('bg.gif') top repeat-y;min-width:490px;">
Put content here
</div>
</div>
例如: 背景图像将始终适合容器大小(宽度100%,高度100px)。 跨浏览器的CSS:
.app-header {
background: url("themes/default/images/background.jpg") no-repeat;
-moz-background-size: 100% 100px;
-webkit-background-size: 100% 100px;
-o-background-size: 100% 100px;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src = "themes/default/images/background.jpg", sizingMethod = 'scale');
background-size: 100% 100px;
}
背景尺寸:200px 50px 将其改为100% 100%,它将根据内容标签的需要缩放,如ul li或div…试过