SVG Coding
Calling a single from a sprite
1<svg class="icon icon-twitter-logo">
2 <use xlink:href="/path/to/images/my-sprite.svg#icon-twitter-logo"></use>
3</svg>
The xlink: bit is deprecated apparently.
CurrentColor
It’s common to use SVG icons inside links for menus etc.. But the CSS usually targets either the color or background-color. An SVG will usually want it’s fill property changed though, or sometimes the stroke. An easy way to this is to set the fill color to ``currentColor`. This property will take the colour being used at the time including the colour of the hover state.
SVG
The <svg> is the main container for one or more SVG’s.
<g>
<symbol>
<title>
Using SVG’s
There are 7 ways to add SVG’s to a web page:
Using the
<img>tag : can’t target with CSS so you can’t use:hoveretc.Inline - paste the code straight into the page. Can modify colour using the
fillattribute or with CSS IF the fill attribute is removed. You can add anidorclassattributes to the<svg>tag OR to the<path>. Using the<path>allows to target different paths on images that use multiple paths.Using the SVG within the CSS file;
1section { 2 background-image: url(path/to/file.svg) left top no-repeat; 3 background-size: 100px 100px; /* important to make the image fit within the container */ 4 width: 100px; 5 height: 100px 6 display: block; 7}You can’t change the colour with this method.
Using CSS masks.
1div { 2 width: 200px; 3 aspect-ratio: 1 / 1; 4 background-color: blue; 5 mask-image: url(path/to/image.svg); 6 mask-size: 200px 200px; 7}The
mask-imageandmask-sizeproperties still require additionalwebkit-prefix for webkit browsers.You can add SVG code directly into an image tag’s source attribute. You have to prefix it first with a data URI.
1<img src='data:image/svg+xml;utf8,<svg id="swan" etc...' >Two issues: first there is a conflict of double quotes here. So you have to use single quotes for either the
srcattribute or within the SVG,<img src='...' >Secondly you cannot use the
#symbol either, as in colours#4512a7;. You can use CSS colour names likecadetblueorhotpinketc..Alternatively you can covert your SVG code to base 64 using a free service like Base 64 Image
Using the
<object>tag