Jump to content
  • 0

SVG траблы


Sergik+
 Share

Question

Подскажите плиз кто работал с svg, встраиваю svg прямо в html и все круто кроме одного -

примерно 2/3 html это svg и еще гадкий jade в sublime 3 ломает индентацию (приходится

ручками подправлять).

Решил встроить svg спрайтами через background-image но есть проблема - не могу

использовать fill, что мне делать то, отдельный спрайт для ховера делать ?

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0
Решил встроить svg спрайтами через background-image но есть проблема - не могу использовать fill, что мне делать то, отдельный спрайт для ховера делать ?


через css можно менять fill, другое дело если fill жестко прописан у обьекта в спрайте, то через css оно не поменяется(возможно !important поможет, но я не пробовал)
Link to comment
Share on other sites

  • 0

 

Решил встроить svg спрайтами через background-image но есть проблема - не могу использовать fill, что мне делать то, отдельный спрайт для ховера делать ?

через css можно менять fill, другое дело если fill жестко прописан у обьекта в спрайте, то через css оно не поменяется(возможно !important поможет, но я не пробовал)

 

Fill только для html работает, для background-image он не работает, в том и проблема.

Link to comment
Share on other sites

  • 0

Если иконка одноцветная, то можно в HTML сделать тупо квадрат определенного цвета, а SVG использовать как маску. Правда не знаю везде ли SVG-маски работают. Ну или отказаться от background-image в пользу инлайнового <svg>. В таком случае для <path /> (или чем там у вас иконки сделаны) можно установить атрибут fill="currentColor" и менять color в CSS.

Link to comment
Share on other sites

  • 0

Если иконка одноцветная, то можно в HTML сделать тупо квадрат определенного цвета, а SVG использовать как маску. Правда не знаю везде ли SVG-маски работают. Ну или отказаться от background-image в пользу инлайнового <svg>. В таком случае для <path /> (или чем там у вас иконки сделаны) можно установить атрибут fill="currentColor" и менять color в CSS.

У меня сейчас онлайн svg, цвет через css меняю но html превратился в кашу, 16 иконок и 4 изображения в svg и это

только на первой страничке, примерно 10 страничек и везде 10 иконок повторяются, вот и решил через спрайты.

К сожалению придется по ховеру другой спрайт подгружать, а так не хотелось (((

Link to comment
Share on other sites

  • 0

Можно сделать всего один большой SVG. А остальное подставлять в нужное место, используя <use />. В таком случае код иконки получится не больше обычной иконки:

<svg viewBox="0 0 32 32">  <use xlink:href="#my_ico_id" /></svg>
Link to comment
Share on other sites

  • 0

Можно сделать всего один большой SVG. А остальное подставлять в нужное место, используя <use />. В таком случае код иконки получится не больше обычной иконки:

 

<svg viewBox="0 0 32 32">  <use xlink:href="#my_ico_id" /></svg>

Угу тоже думал над такой реализацией, попробую все варианты а потом отпишусь здесь,

думаю многим будет интересно.

Link to comment
Share on other sites

  • 0

Ваапще запутался, сделал через спрайты и только тогда понял что не могу менять размер иконок,

может я чего не догоняю ? Как мне в svg спрайтах менять размер при изменении размера экрана ?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy