background-size в сокращенном свойстве background (CSS3) - PullRequest
107 голосов
/ 23 октября 2011

Я пытаюсь смешать свойства background-image и background-size в кратком свойстве background.На основе документации W3C background-size должно следовать после свойства 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 статью о сокращенном свойстве background3 background, объясняющем это.

Но это не работает!Также неясно, как создать сокращенное свойство background, когда background-size и background-position имеют два разных значения для background-position-x и background-position-y или то же самое для background-size.Непонятно, как происходит слеш (/)? Этот пример не работает в моем Chrome 15.

Пример Я попытался сделать стенографию с помощью этого кода CSS:

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;  
}

Более чистый пример

Это работает ( JSFiddle )

 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;
}

Ответы [ 5 ]

60 голосов
/ 23 октября 2011
  1. Ваш jsfiddle использует background-image вместо background
  2. Кажется, это случай "пока не поддерживается этим браузером".

Это работает в 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.

12 голосов
/ 11 сентября 2013

Вы можете сделать как

 body{
        background:url('equote.png'),url('equote.png');
        background-size:400px 100px,50px 50px;
    }
9 голосов
/ 29 августа 2013

Просто примечание для справки: я пытался сделать стенографию так:

background: url('../images/sprite.png') -312px -234px / 355px auto no-repeat;

, но браузеры iPhone Safari не отображали изображение должным образом с элементом фиксированной позиции. Я не проверял с нефиксированным, потому что я ленивый. Мне пришлось переключить css на то, что ниже, из-за того, что свойство background-size ставится после свойства background. Если вы сделаете их в обратном порядке, фон вернет размер фона к исходному размеру изображения. Поэтому, как правило, я бы избегал использования сокращений для установки размера фона.

background: url('../images/sprite.png') -312px -234px no-repeat;
background-size: 355px auto;
1 голос
/ 19 апреля 2013

попробуйте вот так

body {
   background: #fff url("!--MIZO-PRO--!") no-repeat center 15px top 15px/100px;
     }


/* 100px is the background size */
0 голосов
/ 23 октября 2011

Вам придется использовать префиксы вендоров для поддержки разных браузеров, и поэтому вы не сможете использовать их для краткости.

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...