В этом руководстве описываются два способа создания спрайтов, содержащих множество изображений. Однако он использует SVG, а не более известные методы растрового изображения.
SVG идеально подходят для логотипов, диаграмм и значков по нескольким причинам:
Легко создавать и управлять SVG на клиенте или сервере.
В отличие от растровых изображений, SVG можно масштабировать до любого размера без потери качества.
В отличие от значков
Что такое спрайты изображений?
Спрайты изображений уже много лет являются хорошей практикой. Если вам требуется несколько регулярно используемых графических изображений, вы размещаете их в одном изображении, а не в отдельных файлах. Например:
спрайт изображения
Этот пример содержит восемь значков 24×24 в одном файле размером 192×24 пикселя. Файл может предложить немного лучшее сжатие, и для того, чтобы все значки стали видимыми, требуется всего один
Если вы хотите отобразить самый правый значок принтера, CSS может отобразить правильное изображение, позиционируя фон:
{
width: 24px;
height: 24px;
}
Для расчета позиций пикселей и генерации кода CSS можно использовать различные инструменты:
Генератор
cssspritestool.com
Злобная корова
Спрайты изображений SVG
Несколько изображений SVG также могут быть помещены в один файл SVG, и на каждое из них можно ссылаться по идентификатору, а не по положению в пикселях.
Самый распространенный способ — определить отдельные изображения в SVG
Один спрайт можно использовать любое количество раз на странице с SVG
К сожалению, старые браузеры, такие как IE11 и ниже, не будут загружать внешнее изображение. Лучший обходной путь — встроить полный SVG в разметку HTML и ссылаться на каждый спрайт, используя его цель. Например:
Стеки спрайтов SVG
Этот
Метод стеков SVG, впервые задокументированный @simurai и @erikdahlstrom в 2012 году, обеспечивает один из способов обойти это ограничение. Отдельным спрайтам назначается класс, «sprite»а встроенный CSS устанавливает их display: noneпо умолчанию. Однако display: inlineприменяется, когда спрайт является целевым элементом:
Метод работает во всех браузерах, включая Internet Explorer 9 и выше.
Стеки SVG сегодня менее популярны, потому что встраивание SVG непосредственно в HTML стало передовой практикой. Однако это может быть идеальным, когда вам требуется много значков SVG и вам не нужно манипулировать ими напрямую с помощью CSS или JavaScript.