#css #svg #icons #icon-fonts
#css #svg #Значки #значок-шрифты
Вопрос:
Я хочу альтернативу значкам шрифтов. Поэтому я решил создать значки SVG. Я использую Grunt и https://github.com/jkphl/grunt-iconizr . Все работает нормально. Есть мои выходные файлы SCSS с использованием Grunt Iconizr:
Первый
%icon {
background-repeat: no-repeat;
}
.icon-arrow-down {
@extend %icon;
background-image: url("data:image/svg xml,");
}
Второй выходной файл, альтернатива первому файлу:
%icon {
background-repeat: no-repeat;
}
.icon-arrow-down {
background-position: 0 0;
@extend %icon;
background-image: url(icons/icons.svg);
}
Я хочу создать эффект наведения на значки. Есть ли какой-либо способ, как я могу создать эффект наведения, используя чистое решение CSS? Я знаю, что могу сделать это с помощью fill: #CCC;
property … но только если в моем HTML-коде есть SVG. Если я использую значки шрифтов, это можно легко сделать, изменив свойство CSS color. Есть ли какой-либо способ, с помощью которого я могу изменить цвет прикрепленного SVG background-image: url(...)
?
Комментарии:
1. Используя встроенный svg, вы можете поместить имя класса в любую часть файла SVG и изменить цвет и т.д. только для этой части. Проверьте это: css-tricks.com/using-svg
2. Но в этом случае я не смогу создать свой «пакет значков» и использовать значки, только добавив класс CSS в HTML-элемент. Вы думаете, что другого решения нет?
3. Это правильно, добавляя SVG как файл в CSS, вы используете его как файл, а не как код. Если ваш SVG — это сплошной цвет, и вы хотите, чтобы состояние наведения было простым изменением оттенка цвета, вы можете подделать изменение цвета, изменив непрозрачность. В качестве альтернативы, поскольку вы уже создаете «пакет спрайтов», вы можете включить «состояния наведения» значков в сам пакет и изменить положение фона при наведении, чтобы отобразить другой значок.
Ответ №1:
Вы можете добавить opacity
значение при наведении:
.icon-arrow-down:hover {
opacity: 0.5;
}
Комментарии:
1. Да, Кай, это может быть решением. Но, к сожалению, по умолчанию мне нужно иметь один значок в двух цветах на странице. Например, какая-то стрелка. Я могу сделать его белым в заголовке и черным в остальной части страницы. Я все еще думаю, что использование значков шрифтов будет лучшим решением в этом случае, а не с помощью значков SVG.
2. Когда вы используете SVG в качестве изображения, вы никак не можете изменить содержимое изображения. Поэтому вам понадобится один значок для каждого состояния, если вы используете изображения.