Ответы пользователя по тегу SVG
  • Как менять заливку и/или контур svg в CSS при условии, что *.svg в фоне?

    Нужно использовать symbol, вот статьи с описанием методологии:
    https://css-tricks.com/svg-sprites-use-better-icon...
    https://css-tricks.com/svg-symbol-good-choice-icons/

    В кратце, у нас есть один большой SVG со всеми изображениями в виде символов:
    <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
      
      <symbol id="beaker" viewBox="214.7 0 182.6 792">
        <!-- <path>s and whatever other shapes in here -->  
      </symbol>
      
      <symbol id="shape-icon-2" viewBox="0 26 100 48">
        <!-- <path>s and whatever other shapes in here -->  
      </symbol>
      
    </svg>


    Подключаем картинки на странице:
    <svg class="icon">
      <use xlink:href="#shape-icon-1" />
    </svg>
    
    <svg class="icon">
      <use xlink:href="#shape-icon-2" />
    </svg>


    Всё картинки можно стилизовать через CSS (например задать заливку fill: black и т. д.). Замечу, что атрибут viewBox для символов нужно задавать обязательно, что-бы картинки правильно масштабировались (например если вы будете изменять их размеры).
    Если вы используете grunt, взгляните в сторону grunt-svgstore: https://github.com/FWeinb/grunt-svgstore для автоматизации сборки картинок и обётки оных в один SVG контейнер.
    Ответ написан
    Комментировать