При масштабировании в Chrome изображение спрайта становится несоосным

В Chrome, когда вы масштабируете, значки с изображением спрайта смещаются. Похоже, что позиция немного падает, когда вы двигаетесь дальше по фоновому изображению. Это происходит только в Chrome.

View screenshot

Здесь CSS.

.feature-icon {
    height: 22px; 
    width: 22px;
    display: inline-block;
    background-image:url(feature-icon-sprite.png);
    background-size: 22px;
}
.schedule {
    background-position: 0 0; 
}
.selections {
    background-position: 0 -22px; 
}
.messages 
    background-position: 0 -44px; 
}
...

Здесь HTML.

<span class="feature-icon schedule"></span>
<span class="feature-icon selections"></span>
<span class="feature-icon messages"></span>

Я видел статьи в Интернете, например this. Похоже, что проблема с пиксельным округлением с масштабированием в Chrome. Я попытался изменить размер на 20 пикселей, чтобы избежать проблемы, но это все еще происходит при масштабировании 110%.

Ответ 1

Я думаю, вы могли бы добавить размер фона с авто, чтобы исправить эту проблему. Это работает для меня.

.thump {
  background-size: auto 100%; 
}

Это работает только тогда, когда все ваши значки выравниваются в одной строке или столбце (в столбце должно быть: 100% auto). Больше похоже на формулу ниже:

background-size: auto 100%/(rows);

background-size: 100%/(columns) auto;

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

Надеюсь, это может вам помочь.

Ответ 2

Полная версия изображения кажется три "Thumbs up" рядом друг с другом. Вы можете заменить элемент спрайта следующим (я попробовал это на примере, который вы предоставили, и это отлично масштабируется):

<img src="data:image/png;base64,yourbase64stringhere" >

Теперь все, что вам нужно сделать, это скрыть часть изображения (например, 66,6% справа). Для этого вы можете использовать путь клипа, или вы можете просто отрезать спрайт, чтобы был только один значок большого пальца.

Ответ 3

Кажется, что установка размера фона для авто для .feature-icon будет работать:

.feature-icon {
  background-size: auto;
}

Изображение не становится несогласованным, но, возможно, вы не указали все необходимые CSS, чтобы проверить его.

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

Ответ 4

Я не вижу проблемы при добавлении

background-size: cover;
background-repeat: no-repeat;

для кодирования...