SVG (Scalable Vector Graphics) is a powerful feature introduced in HTML5 for creating and manipulating vector graphics directly within web pages. Unlike raster images, SVG graphics remain crisp and clear at any size, making them ideal for responsive design.
SVG is an XML-based markup language for describing two-dimensional vector graphics. It allows for three types of graphic objects: vector graphic shapes, images, and text.
To use SVG in HTML5, you can either embed it directly in your HTML or link to an external SVG file. Here's a simple example of an embedded SVG:
<svg width="100" height="100">
<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg>
This code creates a yellow circle with a green outline.
<rect>
: Rectangles<circle>
: Circles<ellipse>
: Ellipses<line>
: Lines<polyline>
: Connected lines<polygon>
: Closed shapes<path>
: Advanced paths<text>
: Text elementsSVG elements use attributes to define properties such as size, position, color, and more. Some common attributes include:
width
and height
: Define the dimensions of the SVG canvasfill
: Sets the fill color of shapesstroke
: Sets the outline colorstroke-width
: Defines the thickness of the outlinex
and y
: Set the position of elementsSVG supports advanced features like gradients, patterns, and animations. Here's an example of a linear gradient:
<svg width="200" height="100">
<defs>
<linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1" />
<stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1" />
</linearGradient>
</defs>
<rect width="200" height="100" fill="url(#grad1)" />
</svg>
SVG graphics are inherently responsive. They can be scaled without loss of quality, making them perfect for HTML Responsive Web Design. To create a responsive SVG, omit the width
and height
attributes and use CSS to control the size.
When using SVG, it's important to consider accessibility. Use the title
and desc
elements within your SVG to provide text alternatives for screen readers. For complex graphics, consider using HTML and ARIA attributes to enhance accessibility.
Modern browsers support SVG well, but for older browsers, it's wise to provide fallbacks. You can use the <picture>
element or JavaScript to detect SVG support and serve alternative content if necessary.
HTML5 SVG offers a powerful way to create scalable, interactive graphics for the web. By mastering SVG, you can enhance your web pages with custom icons, illustrations, and data visualizations that look great on any device. For more advanced graphics, you might also want to explore HTML5 Canvas.