@flor_master
Могу верстать, могу не верстать.

Можно ли кастомизировать SVG который задан как фон?

Добрый день.
Есть вопрос
Например есть такой SVG
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="22" width="22" class="radio" >
    <circle class="radio_circle" cx="11" cy="11" r="8" stroke-width="2" fill="none" />
    <circle class="radio_point" cx="11" cy="11" r="4" />
</svg>


Когда его вставляешь просто в код - то этой SVG можно управлять через стили
Например:
.radio_circle{
  stroke: $blue_light;
}
.radio_point{
  fill: $blue_light;
}


Но как только я вставляю этот SVG через CSS как фон
background: url("../i/radio.svg") no-repeat top left;


То все стили для SVG - отваливаются.
Можно ли, например, поменять параметр fill для SVG при наведении на него, вставленный через CSS ?

PS. Вопрос Закрыт.
Управлять через CSS не получилось((
Пришлось сделать хитрость.
label{
    position: relative;
    padding-left: 4px;
    cursor: pointer;
    background-size: contain;

    &:before{
      content: url("../i/input_style/radio.svg");
      opacity: 0;
    }
    &:after{
      content: url("../i/input_style/radio_select.svg");
      opacity: 1;
    }
  }

  input[type=radio]:checked + label{
    &:before{
      opacity: 1;
    }
    &:after{
      opacity: 0;
    }
  }
  • Вопрос задан
  • 690 просмотров
Решения вопроса 1
isqua
@isqua
Научу HTML, CSS, JS, BEM и Git
Напрямую так нельзя, но можно попробовать схитрить. В CSS для страницы:
.elem {
    background: url('/i/radio.svg');
}
.elem:hover {
    background: url('/i/radio.svg#hover'); /* Меняем URL картинки при наведении */
}


В SVG
<style>
#hover:target { /* Привязываемся к селектору :target, меняем свойство fill */
    fill: red;
}
</style>
<path id="hover" ... />


UPD: Хитрость не работает в вебкитах.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@GreatRash
Попробуйте fill="currentColor" в SVG, а затем рулите рулите цветом для родителя.
Ответ написан
Ваш ответ на вопрос

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

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