How to align checkbox and its label on cross-browsers using CSS?

Aligning checkboxes with their labels consistently across different browsers can be challenging due to varying default styles. CSS provides several effective approaches to achieve proper alignment. In this article, we will explore three reliable methods to align checkboxes and labels for consistent cross-browser display.

Syntax

/* Method 1: Using vertical-align */
input[type="checkbox"] {
    vertical-align: middle;
}

/* Method 2: Using flexbox */
label {
    display: flex;
    align-items: center;
}

/* Method 3: Using grid */
.container {
    display: grid;
    align-items: center;
}

Method 1: Using vertical-align Property

The vertical-align property provides a simple solution for aligning checkboxes with their label text. This method works well for inline alignment

<!DOCTYPE html>
<html>
<head>
<style>
    input[type="checkbox"] {
        vertical-align: middle;
        margin-right: 8px;
    }
    
    label {
        font-family: Arial, sans-serif;
        margin-bottom: 10px;
        display: block;
    }
</style>
</head>
<body>
    <h3>Checkbox Alignment using vertical-align</h3>
    
    <label>
        <input type="checkbox" id="option1"> 
        Option 1
    </label>
    
    <label>
        <input type="checkbox" id="option2"> 
        Option 2
    </label>
</body>
</html>
Two checkboxes with their labels aligned vertically in the middle, displayed in separate lines with proper spacing.

Method 2: Using Flexbox

Flexbox provides more control over alignment and is highly reliable across modern browsers. The align-items: center property ensures perfect vertical alignment

<!DOCTYPE html>
<html>
<head>
<style>
    .checkbox-container {
        margin-bottom: 15px;
    }
    
    label {
        display: flex;
        align-items: center;
        font-family: Arial, sans-serif;
    }
    
    input[type="checkbox"] {
        margin-right: 10px;
        flex-shrink: 0;
    }
</style>
</head>
<body>
    <h3>Checkbox Alignment using Flexbox</h3>
    
    <div class="checkbox-container">
        <label>
            <input type="checkbox">
            Option A
        </label>
    </div>
    
    <div class="checkbox-container">
        <label>
            <input type="checkbox">
            Option B
        </label>
    </div>
</body>
</html>
Two checkboxes perfectly aligned with their labels using flexbox, with consistent spacing and vertical centering.

Method 3: Using CSS Grid

CSS Grid layout offers precise control over checkbox and label positioning. This method is particularly useful when you need more complex layouts

<!DOCTYPE html>
<html>
<head>
<style>
    .grid-container {
        display: grid;
        grid-template-columns: auto 1fr;
        gap: 10px 8px;
        align-items: center;
        font-family: Arial, sans-serif;
        max-width: 300px;
    }
    
    input[type="checkbox"] {
        justify-self: start;
    }
    
    label {
        justify-self: start;
    }
</style>
</head>
<body>
    <h3>Checkbox Alignment using CSS Grid</h3>
    
    <div class="grid-container">
        <input type="checkbox" id="gridOption1">
        <label for="gridOption1">Option A</label>
        
        <input type="checkbox" id="gridOption2">
        <label for="gridOption2">Option B</label>
    </div>
</body>
</html>
Two checkboxes and labels arranged in a clean grid layout with proper alignment and consistent spacing between elements.

Comparison

Method Browser Support Best For Complexity
vertical-align All browsers Simple inline alignment Low
Flexbox IE 10+ Modern responsive designs Medium
Grid IE 11+ Complex layouts Medium

Conclusion

All three methods effectively align checkboxes with labels across browsers. Use vertical-align for simple cases, flexbox for modern responsive designs, and CSS Grid when you need precise layout control.

Updated on: 2026-03-15T17:03:25+05:30

12K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements