Answers:
如果需要放大图像,则必须在图像编辑器中编辑图像本身。
如果使用img标签,则可以更改大小,但是如果您需要将图像作为其他内容的背景,那将无法达到预期的效果(并且它不会像您想要的那样重复出现)...
在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;
}
这将调整图像宽度,使其适合背景定位区域中的所有次数。
附加说明
如果所需大小是静态像素大小,则可以通过物理方式调整实际图像的大小。这既可以提高调整大小的质量(假设您的图像软件比浏览器做得更好),又可以在原始图像大于要显示的图像时节省带宽。
只有CSS 3支持该功能,
background-size: 200px 50px;
但是我会编辑图像本身,以便用户需要减少加载,并且它看起来比没有抗锯齿功能的缩小图像更好。
background: url('resized_image.png')\9;
IE lt 9
如果您的用户仅使用Opera 9.5 +,Safari 3 +,Internet Explorer 9+和Firefox 3.6+,那么答案是肯定的。否则,不会。
该背景大小的属性是CSS 3的一部分,但它不会工作在大多数浏览器。
为了您的目的,请放大实际图像。
不可能的。背景将始终尽可能大,但是您可以使用来阻止背景重复background-repeat
。
background-repeat: no-repeat;
其次,背景不会进入框的空白区域,因此,如果只想让背景位于框的实际内容上,则可以使用空白而不是填充。
第三,您可以控制背景图像的起始位置。默认情况下,它是盒子的左上角,但是您可以使用来控制它background-position
,如下所示:
background-position: center top;
也许
background-position: 20px -14px;
负定位在CSS精灵中经常使用。
有一个被遗忘的论点:
background-size: contain;
这不会像拉伸background-image
那样伸展您的身体cover
。它将一直延伸到较长的一侧达到外部容器的宽度或高度,从而保留图像。
编辑:还有-webkit-background-size
和-moz-background-size
。
在IE9 +,Firefox 4 +,Opera,Chrome和Safari 5+中支持background-size属性。
为了支持@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)
您完全可以使用CSS3:
body {
background-image: url(images/bg-body.png);
background-size: 100%; /* size the background image at 100% like any responsive img tag */
background-position: top center;
background-repeat:no-repeat;
}
这会将背景图像的大小调整为body元素宽度的100%,然后随着body元素的大小调整为较小的分辨率,相应地重新调整背景的大小。
这是示例:http : //www.sccc.premiumdw.com/examples/resize-background-images-with-css/
put the below code in the body of you css file
background-image: URL('../images/wave-green-plain-colour.jpg') ;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
width:100px;
我使用背景图像作为按钮,但是即使我设置了宽度和高度,它也只能显示与文本相同大小的图像。相反,我用
字符(不间断空格)填充文本。基本上,我会根据需要添加所有内容,直到出现所有按钮背景。所以我可能会有这样的代码:
在样式表中:
#v2menu-home {
background-image:url(../v2-siteimages/button.png);
background-repeat:no-repeat;
}
在HTML文档中:
<div id="v2menu">
<a id="v2menu-home" href="/index.php">home </a>
</div><!-- v2menu -->
例如:
背景图片将始终适合容器大小(宽度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;
}
这可以在CSS3中使用background-size进行
.backgroungImage {
background: url('../imageS/background.jpg') no-repeat;
background-size: 32px 32px;
}