Четох много по тази тема последните дни, но не намерих решение. Имам два комплекта спрайтове, един с ниско качество за нормални дисплеи и един с високо качество за ретина дисплеи.
Проблемът ми е, че сайтът ми трябва да реагира, графиките трябва да се променят в зависимост от прозореца на браузъра. Но със свойството background-size
изглежда, че не мога да кажа на браузъра да промени размера на спрайта. Ето какво получих досега:
#logo-img {
max-width: 100%;
text-indent: -9999px;
height: 85px;
width: 360px;
background-image: url('/images/sprites-sa026cef942.png');
background-position: 0 -2609px;
background-repeat: no-repeat;
overflow: hidden;
outline: 0 none !important;
display: block;
white-space: nowrap;
}
@media (-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (-o-min-device-pixel-ratio: 3 / 2), (min-device-pixel-ratio: 1.5) {
#logo-img {
background-image: url('/images/sprites-retina-se61e802cf4.png');
background-position: 0 -2601px;
-webkit-background-size: 360px, auto;
-moz-background-size: 360px, auto;
-o-background-size: 360px, auto;
background-size: 360px, auto;
}
}
HTML е
<a href="/bg#" id="logo-img">
<h1>My logo text</h1>
</a>
Всичко работи добре, освен на мобилни устройства или при преоразмеряване на прозореца на браузъра. Логото се изрязва и не се преоразмерява спрямо прозореца на браузъра. Играех с max-width: 100%;
и height: auto;
, но това засяга само контурите, не и спрайтовете вътре.
Надявам се някой да знае решение. Не е задължително да е съвместим с IE8, но би било хубаво ;)
РЕДАКТИРАНЕ Преди да използвам спрайтове, използвах background-size: contain;
, за да се уверя, че фоновото изображение се преоразмерява до размера на елемента:
#logo-img {
background:url(../images/sprites-retina/logo.png) no-repeat center center;
background-size: contain;
max-width: 100%;
text-indent:-9999px;
height: 85px;
width: 360px;
overflow: hidden;
outline: 0 none !important;
display: block;
white-space: nowrap;
}
Това работи добре, но след това не мога да използвам spritesheet. Може би от това става ясно какво имам предвид.
РЕДАКТИРАНЕ 2
Направих цигулка http://jsfiddle.net/euvRD/2/