我正在尝试将background-image
和background-size
属性混合在一个简短的background
属性中。基于W3C documentation background-size
的{{1}}属性应该在以斜杠(background-position
)分隔的/
属性之后。
W3C示例:
p { background: url("chess.png") 40% / 10em gray round fixed border-box; }
相当于:
p { background-color: gray; background-position: 40% 50%; background-size: 10em 10em; background-repeat: round round; background-clip: border-box; background-origin: border-box; background-attachment: fixed; background-image: url(chess.png) }
MDN说同样的话。我还发现了this和this关于速记CSS3背景属性的文章,解释了这一点。
但这不起作用!如果background
和background-size
对background-position
和background-position-x
有两个不同的值或background-position-y
或background-size
具有两个不同的值,那么还不清楚如何制作速记/
属性1}}。目前尚不清楚斜线(div {
background: url(http://www.placedog.com/125/125)
0 0 / 150px 100px
repeat no-repeat
fixed border-box padding-box blue;
height: 300px;
width:360px;
border: 10px dashed magenta;
}
)是如何发生的? This example无法在Chrome 15中使用。
示例我试图简化这个CSS代码:
body{
background-image:url(http://www.google.com/intl/en_com/images/srpr/logo3w.png);
background-position:200px 100px;
background-size:600px 400px;
background-repeat:no-repeat;
}
这是有效的(JSFiddle)
body{
background:url(http://www.google.com/intl/en_com/images/srpr/logo3w.png) 200px 100px/600px 400px no-repeat;
}
这不起作用(jsfiddle)
body{
background:url(http://www.google.com/intl/en_com/images/srpr/logo3w.png) 200px/400px 100px/600px no-repeat;
}
这也不起作用(jsfiddle)
{{1}}
答案 0 :(得分:58)
background-image
代替background
这适用于Opera:http://jsfiddle.net/ZNsbU/5/
但它在FF5和IE8中都不起作用。 (适用于过时的浏览器:D)
body {
background:url(http://www.google.com/intl/en_com/images/srpr/logo3w.png) 400px 200px / 600px 400px no-repeat;
}
你可以这样做:
body {
background:url(http://www.google.com/intl/en_com/images/srpr/logo3w.png) 400px 400px no-repeat;
background-size:20px 20px
}
哪个适用于FF5和Opera,但不适用于IE8。
答案 1 :(得分:12)
你可以这样做
body{
background:url('equote.png'),url('equote.png');
background-size:400px 100px,50px 50px;
}
答案 2 :(得分:9)
仅供参考:我试图像这样做速记:
background: url('../images/sprite.png') -312px -234px / 355px auto no-repeat;
但iPhone Safari浏览器没有使用固定位置元素正确显示图像。我没有用非固定的检查,因为我很懒。我不得不将css切换到下面的内容,小心地将背景大小 放在 背景属性之后。如果反向执行,背景会将背景大小恢复为图像的原始大小。所以我通常会避免使用速记来设置背景大小。
background: url('../images/sprite.png') -312px -234px no-repeat;
background-size: 355px auto;
答案 3 :(得分:1)
尝试这样
body {
background: #fff url("!--MIZO-PRO--!") no-repeat center 15px top 15px/100px;
}
/* 100px is the background size */
答案 4 :(得分:-4)
您必须使用供应商前缀来支持不同的浏览器,因此无法以速记方式使用它。
body {
background: url(images/bg.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}