<div class="icon"></div>
CSS(层叠样式表)
.icon {
height: 60px;
width: 60px;
background-size: 60px 60px;
background: transparent url("icon.png") no-repeat 0 0;
}
演示
<div class="icon"></div>
.icon {
height: 60px;
width: 60px;
background-size: 60px 60px;
background: transparent url("icon.png") no-repeat 0 0;
}
演示
background
根据你设置的大小重新设置图像位置。
原因是“background”属性是一个缩写属性,用于在样式表的同一位置设置大多数背景属性,包括您之前尝试使用的background-size
属性。
编辑后的新CSS规范链接:https://www.w3.org/TR/css-backgrounds-3/#background
您可以使用:
background-size: 60px 60px;
background: transparent url("icon.png") no-repeat 0 0;
翻译成中文是:
background-size: 60px 60px; /*You try to set bg-size*/
background-color: transparent ;
background-position: 0% 0%;
background-size: auto auto; /* it resets here */
background-repeat: no-repeat no-repeat;
background-clip: border-box;
background-origin: padding-box;
background-attachment: scroll;
background-image: url("icon.png");
因此,您可以尝试使用单独的background-...
设置。
所以要么使用:
background-size: 100% 100%;
background-image: url("http://1.bp.blogspot.com/-T3EviK7nK1s/TzEq90xiJCI/AAAAAAAABCg/OMZsUBxuMf0/s400/smilelaughuy0.png");
background-repeat:no-repeat;
background-position:0 0;
或者只是交换您的行。
background
是CSS中的“缩写属性”,它可以将几个相关的背景属性组合成一个声明(例如background-color
、background-image
、background-repeat
、background-position
等),从而使编写更加简单。因此,它会覆盖任何没有在缩写中直接指定的属性的值为其默认值(就我所知...根据W3C规范,您可以在background-position
之后在background
缩写属性中指定background-size
,但我尚未测试过这一点,也不知道当前浏览器的支持情况,但我怀疑它并不好)。据我所知,这是因为background
缩写隐式地设置所有它表示的属性,而不仅仅是你指定的那些属性,因此,在缩写声明中未定义的任何属性都设置为其默认值。
有三种方法可以解决这个问题:
1)将background-size
属性放在background
属性之后
2)在更具体的选择器中添加background-size
属性的声明,例如a.icon
而不是.icon
3)根本不使用background
缩写属性,而是使用单独的属性来指定
background-size
,导致它被默认值覆盖。请参考W3C参考文献了解详情。该文档声称可以在简写中添加background-size
,但我自己还没有测试过。 - Ennuibackground
如何与 background-size
协同工作。 - Timmetjebackground
属性中指定大小,因此您完全不需要依赖于background-size
。您可以像这样指定大小:background: url("path-to-image.svg") center/contain no-repeat