В настоящее время у нас есть изображение Sprite, в которое загружено несколько SVG.Есть две стратегии, которые мы думаем реализовать, но изо всех сил пытаемся найти, какая из них была бы более эффективной в отношении внешнего интерфейса.
Параметры:
- Загрузить все SVG (с атрибутом Fill, заполненным в отдельных файлах) со всеми цветовыми вариациями в одно изображение спрайта, подать его навеб-сайт, а затем используйте CSS-классы, чтобы получить тот, который нам нужен.
- Загрузите все SVG (без атрибута заполнения, заполненного в отдельных файлах) в одно изображение спрайта (без изменений цвета), предоставьте изображение спрайта на веб-сайте,и затем использовать CSS-классы, чтобы получить SVG, который нам нужен, но также добавить CSS
fill
свойство black
, white
, blue
или другие по мере необходимости.
Примеры для каждой опции (1: 1)
- Если бы я хотел черный значок поиска, у меня могло бы быть имя класса CSS
search--black
, но я хотелбелый значок поиска, который я мог бы сделать search--white
- Если бы я хотел значок поиска в черном, я мог бы использовать класс CSS
search
+ color--white
// Option 1.
.icons {
background-image: url('/path/to/sprite/');
}
.search--black {
width: 10px;
height: 20px;
background-position: 10% 10%;
}
.search--white {
width: 10px;
height: 20px;
background-position: 20% 20%;
}
// Option 2.
.icons {
background-image: url('/path/to/sprite/');
}
.search {
width: 15px;
height: 20px;
background-position: 5% 5%;
}
.color--white {
fill: white;
}
<!-- option 1 -->
<span class="icons search--black">Insert black search icon </span>
<span class="icons search--white">Insert white search icon </span>
<!-- option 2 -->
<span class="icons search color--white">Insert white search icon </span>
Вещи, которые я рассмотрел:
- С опцией 1 в спрайте больше изображения и меньше классов CSS, необходимых в
html
- с вариантом 2, спрайт меньше, но больше CSS, так как нам нужны дополнительные для цвета
Что является более производительным и оптимальным для веб-сайтов?