How to import a SVG file in JavaScript ?

In this article, we are going to see and use different ways of using SVGs ( Scalable Vector Graphics).
Method 1: The quickest way using HTML <img> element.
Syntax:
<img src='logo.svg' alt="some file" height='100' width='100' style="color:green;"/>
Embedding an SVG through the <img> element, you need:
- src attribute
- height attribute (if your SVG has no inherent aspect ratio)
- width attribute (if your SVG has no inherent aspect ratio)
Pros:
- Easy and quick implementation.
- Make the SVG image into a hyperlink by nesting <img> & <a> HTML element
- Caching of SVG file, hence reduced loading time.
Cons:
- Manipulation of SVG file cannot be done.
- You can only use inline CSS to style your SVG.
- Cannot use CSS pseudo-classes to style the SVG.
Example:
HTML
<!DOCTYPE html> <html lang="en"> <body> <img src= "https://media.zambiatek.com/wp-content/cdn-uploads/20210205161739/Screenshot-2021-02-05-161721.png" alt="gfg-logo" height="100" width="100" style="background-color: green" /> </body> </html> |
Output :
SVG file using HTML <img> element
Method 2: Using SVG as an <object>
Syntax:
<object type="image/svg+xml" data="logo.svg" class="logo"> Logo </object>
Embedding a SVG via a <object> element requires:
- type attribute
- data attribute
- class attribute ( if using external/internal CSS )
Pros :
- You can use external/internal CSS to style SVG.
- Easy and quick implementation.
- Will work great with caching.
Cons :
- To use an external stylesheet, you need to use an <style> element inside the SVG file.
- Not so familiar with syntax and implementation.
HTML code:
HTML
<!DOCTYPE html> <html lang="en"> <body> <object type="image/svg+xml" data= "https://media.zambiatek.com/wp-content/cdn-uploads/20210205161739/Screenshot-2021-02-05-161721.png" class="logo"> GFG Logo </object> </body> </html> |
CSS code:The following is the content for the “styles.css” file used in the above code.
.logo {
height: 100;
width: 100;
}
Output :
SVG file using HTML <object> element
Method : Embedding an SVG with an <iframe>
Syntax :
<iframe src="logo.svg" width="500" height="500"> </iframe>
Embedding a SVG via <iframe> element requires
- src attribute
- height attribute (if your SVG has no inherent aspect ratio)
- width attribute (if your SVG has no inherent aspect ratio)
Pros :
- Quick and easy implementation.
- Same as <object> element.
Cons :
- You can’t use JavaScript to manipulate the SVG.
- Caching is not great.
HTML code :
HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="stylesheet" href="styles.css" /> </head> <body> <iframe src= "https://media.zambiatek.com/wp-content/cdn-uploads/20210205161739/Screenshot-2021-02-05-161721.png" width="150" height="150"> </iframe> </body> </html> |
Output :



