@pixal

Почему нет нормальной работы с svg в css?

Всем привет. Очень удобная вещб svg это идеальная технология для иконок, пентаграмм. Но есть беда. Практически все способы вставки svg в html не позволяют менять цвет при помощи css. Кроме как вставить код svg в html. Неужели никак нельзя подключить по ссылке и иметь возможность гибко изменять все?
  • Вопрос задан
  • 198 просмотров
Решения вопроса 2
Ankhena
@Ankhena Куратор тега CSS
Нежно люблю верстку
Есть.
Практически все способы вставки svg в html не позволяют менять цвет при помощи css.

При вставке в разметку вообще нет проблем менять цвет.
fill: red;
stroke: green;

и т.д.
Альтернативный вариант, а разметке задаем в заливку или обводку currentColor, в CSS меняем свойство color.

Ещё один - использование кастомных свойств.

При вставке прямо в CSS
Маски и фильтры.

mask: url(img.svg) no-repeat center / contain;
  background: red;
  
  &:hover {
    background: green;
  }


Один из вариантов - инлайнить SVG прямо в CSS (в кастомные свойства, чтобы не мусорить в селекторах).
Другой вариант - собираем стек из SVG и используем в url в маске.

Собственно, стеки можно использовать где угодно, в отличие от устаревшего спрайта.
https://telegra.ph/Stack--sprajt-zdorovogo-chelove...
Ответ написан
@leeroyjenkins176
Работайте с svg как со спрайтом с помощью тега <use>
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
CoDeR2006
@CoDeR2006
TS
Можно, тебе нужно почитать про current color in svg.
https://stackoverflow.com/questions/13000682/how-d...
Ответ написан
Fragster
@Fragster
помогло? отметь решением!
Используй сборщик, который автоматически соберет svg sprite из svg из папки и вставит в html. Для статических страниц подходят способы отсюда: https://telegra.ph/Stack--sprajt-zdorovogo-chelove...
Для всяких spa, собираемых vite и webpack также есть плагины.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы