css3控制背景图大小background-size

background-size是css3提供的一个新特性,它可以让你随心所欲的控制背景图片的大小。

background-size的类型

background-size需要两个值,它的类型可以是像素(px)、百分比(%)或是auto,还可以是cover和contain。第一个值为背景图的width,另外一个值用于指定背景图上的height,如果只设定1个值,则第2个默认为auto,但当值为cover和contain时除外。

cover:保持图像的宽高比例,将图片缩放到正好完全覆盖定义的背景区域,其中有一边和背景相同。

html:

<div class="div" ><h1>雨打浮萍</h1><p>专注于web前端开发</p></div>

css:

.div{
	width:160px;
	height:120px;
	border:1px solid #ccc;
	padding:10px;
	background-image:url(bg.jpg);
	background-size:cover;
}

效果如下:

contain:保持图像的宽高比例,将图片缩放到宽或者高正好适应定义背景的区域,但背景仍在定义的区域之内,被包含。

css:

.div{
	width:160px;
	height:120px;
	border:1px solid #ccc;
	padding:10px;
	background:url(bg.jpg) no-repeat;
	background-size:contain;
	font-family:Microsoft Yahei;
}

效果如下:

length

.div{
	background-size:150px 80px;
}

显示效果:

这里为背景图片设置宽高,图片会直接被拉伸或缩放,不保持原来的比例。如果只设置一个数值,另外一个值默认为auto,它将按图片原比例来伸缩。

percentage

.div{
	background-size:40% 60%;
}

这里需要特别注意一下,图片大小不是按背景图片大小的百分数来计算的,而是装载背景图的元素的百分比来计算。

浏览器的兼容性

支持浏览器:IE(9)、firefox、Chrome、Opera、Safari。

/*Mozilla*/
-moz-background-size:auto||<length>||<percentage>||cover||contain;
/*Webkit*/
-webkit-background-size:auto||<length>||<percentage>||cover||contain;
/*Presto*/
-o-background-size:auto||<length>||<percentage>||cover||contain;
/*W3c*/
background-size:auto||<length>||<percentage>||cover||contain;

注意:虽然我上面写到了各浏览器需要添加自己独特的方式,但并不代表这个样式一定要添加,在我写的事例中并没有为各浏览写自己的样式,仍然执行很好。

马上分享给你的朋友吧~

css3控制背景图大小background-size》上有 9 条评论

  1. 挺能研究啊,HTML 5 研究的这么透彻!钦佩!钦佩!可惜我以前用在 Chrome 好使,今天突然失效了!-_- ! 万恶的W3C,研究出这破玩意干啥,我们总得不停的学习!

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>