Как использовать css спрайты в адаптивной вёрстке?

Всем привет!

CSS-спрайты создаются с фиксированными размерами иконок.

А как быть для адаптивной вёрстки, ведь иконки должны масштабироваться через media-queries, но их размеры зашиты в спрайте (картинка спрайта имеет фиксированный размер в пикселях)?

Если для спрайта использовать background-size, то все backround-position для иконок плывут - как это побороть?

Как вариант вижу создать миксин масштабирования в sass, который в зависимости от backround-size спрайта пересчитывает backround-position и размеры для иконок. Но это как то сложно, может проще можно?

Вот код спрайта:
.sprite {
    background-image: url(../img/sprite/sprite.png);
    background-repeat: no-repeat;
    display: block;
}


.sprite-icon-delete {
    width: 15px;
    height: 16px;
    background-position: -5px -5px;
}

.sprite-icon-embed {
    width: 16px;
    height: 7px;
    background-position: -56px -5px;
}
  • Вопрос задан
  • 5141 просмотр
Решения вопроса 1
mr_T
@mr_T
Web-разработчик
Если иконки однотонные, то лучше шрифтовые использовать. Вот эта штука позволяет делать шрифт из SVG иконок. Многие фигуры можно повторить через css.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
andykov
@andykov
Shit happens
Масштабировать спрайт не получится. Делайте через SVG
css.yoksel.ru/svg
css.yoksel.ru/svg-decoration
https://uwebdesign.ru/svg-sprites/
или отказывайтесь от спрайта и делайте отдельными картинками
Ответ написан
@AndreyMyagkov
На хабре была статья про использование относительных единиц смещения позиций спрайта.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы