Align HTML5 SVG to the center of the screen

SVG stands for Scalable Vector Graphics and it is a language for describing 2D-graphics and graphical applications in XML. HTML5 provides native SVG support, and centering SVG elements on a webpage requires specific CSS techniques.

Method 1: Using Auto Margins and Display Block

The simplest way to center an SVG horizontally is using auto margins with display block:

<!DOCTYPE html>
<html>
<head>
    <style>
        #svgelem {
            margin-left: auto;
            margin-right: auto;
            display: block;
        }
    </style>
    <title>Centered SVG</title>
</head>
<body>
    <h2>HTML5 SVG Circle - Auto Margins</h2>
    <svg id="svgelem" width="200" height="200" xmlns="http://www.w3.org/2000/svg">
        <circle cx="100" cy="100" r="50" fill="red" />
    </svg>
</body>
</html>

Method 2: Using Flexbox for Perfect Centering

For both horizontal and vertical centering, flexbox provides the most reliable solution:

<!DOCTYPE html>
<html>
<head>
    <style>
        .container {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
        }
        
        #svgelem {
            border: 1px solid #ccc;
        }
    </style>
    <title>Flexbox Centered SVG</title>
</head>
<body>
    <div class="container">
        <svg id="svgelem" width="200" height="200" xmlns="http://www.w3.org/2000/svg">
            <circle cx="100" cy="100" r="50" fill="blue" />
            <text x="100" y="110" text-anchor="middle" fill="white">Centered</text>
        </svg>
    </div>
</body>
</html>

Method 3: Using Transform with Absolute Positioning

This method uses CSS transforms for precise centering:

<!DOCTYPE html>
<html>
<head>
    <style>
        #svgelem {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
        }
        
        body {
            margin: 0;
            height: 100vh;
            position: relative;
        }
    </style>
    <title>Transform Centered SVG</title>
</head>
<body>
    <svg id="svgelem" width="200" height="200" xmlns="http://www.w3.org/2000/svg">
        <rect x="50" y="50" width="100" height="100" fill="green" />
        <text x="100" y="110" text-anchor="middle" fill="white">Transform</text>
    </svg>
</body>
</html>

Comparison of Methods

Method Horizontal Center Vertical Center Browser Support
Auto Margins Yes No All browsers
Flexbox Yes Yes Modern browsers
Transform + Position Yes Yes Modern browsers

Key Points

  • Always specify width and height attributes for SVG elements
  • Use display: block with auto margins for simple horizontal centering
  • Flexbox is the most flexible solution for complete centering
  • Transform method works well but requires absolute positioning

Conclusion

Use auto margins for simple horizontal centering, flexbox for modern layouts requiring both horizontal and vertical alignment, and transforms when you need precise positioning control.

Updated on: 2026-03-15T23:18:59+05:30

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements