Пожалуйста, взгляните на это перо:
http://codepen.io/troywarr/pen/VYmbaa
Что я здесь делаю:
- определение символа SVG (
<symbol>
) - определение линейного градиента SVG (
<linearGradient>
) - с помощью элемента
<use>
для ссылки на созданный мной SVG-символ - в CSS, определяющем два класса:
-
external
, который ссылается на линейный градиент, определенный в этот внешний.svg
файл (щелкните правой кнопкой мыши и просмотрите исходный код) -
internal
, который ссылается на линейный градиент, определенный в локальном HTML (который, я считаю, фактически идентичен таковому во внешнем файле)
-
Поскольку я применил класс internal
к элементу <svg>
в нижней части примера HTML, применяется градиент, отображая галочку с синим градиентом. Это то, что я хочу.
Но если вы переключите класс internal
на external
в примере HTML, галочка больше не будет видна:
http://codepen.io/troywarr/pen/vEymKX
Когда я просматриваю вкладку Chrome Inspector "Сеть", я не вижу, как браузер пытается загрузить файл SVG. Есть ли проблема с моим синтаксисом или что-то еще происходит здесь?
По крайней мере, похоже, что я делаю это правильно, опираясь на несколько ссылок, которые я нашел:
- http://www.w3.org/TR/SVG/painting.html#SpecifyingPaint
- http://www.w3.org/TR/SVG/linking.html#IRIReference
- qaru.site/info/10600/...
Но ничего, что я пробовал до сих пор, не позволял мне ссылаться на линейный градиент, определенный во внешнем файле .svg
.
Спасибо за любую помощь!