CSS
How Do You Give 100% Height and Width in CSS?
Setting an element to take up 100% of the height and width of its container—or even the entire screen—is a common need in web design. Whether you’re creating a fullscreen background, a flex layout, or a responsive hero section, CSS gives you the tools to do it—if you understand how sizing works.
In this blog post, we’ll walk through how to set height: 100%
and width: 100%
correctly, including tips, examples, and common mistakes to avoid.
✅ Basic Syntax
.element {
width: 100%;
height: 100%;
}
Sounds simple, right? But for it to work correctly, the parent element must also have a defined size—especially for height.
📏 How Width: 100% Works
Setting width: 100%
makes an element stretch to fill the entire width of its parent.
✅ Example:
.container {
width: 500px;
}
.box {
width: 100%;
background-color: lightblue;
}
Here, .box
will be exactly 500px wide.
📏 How Height: 100% Works
Unlike width, height: 100%
requires that the parent element has a defined height—otherwise, it won’t have anything to base its percentage on.
✅ Example:
html, body {
height: 100%;
margin: 0;
}
.fullscreen {
height: 100%;
background: lightgreen;
}
In this example:
html
andbody
must both be set toheight: 100%
so the.fullscreen
div knows how tall it should be.
🧪 Fullscreen 100% Width and Height Example
<!DOCTYPE html>
<html lang="en">
<head>
<style>
html, body {
height: 100%;
margin: 0;
}
.full {
width: 100%;
height: 100%;
background: #007bff;
color: white;
display: flex;
align-items: center;
justify-content: center;
font-size: 2rem;
}
</style>
</head>
<body>
<div class="full">100% Width and Height</div>
</body>
</html>
This example makes the .full
div cover the entire screen, both vertically and horizontally.
🔄 Alternative: Viewport Units
Instead of relying on parent sizing, you can use viewport units:
.fullscreen {
width: 100vw;
height: 100vh;
}
Unit | Description |
---|---|
vw | 1% of viewport width |
vh | 1% of viewport height |
This method is especially useful for fullscreen backgrounds, splash screens, and landing sections.
🚫 Common Mistakes to Avoid
Mistake | Fix |
---|---|
height: 100% with no parent height | Set parent to height: 100% |
Using height: 100% on inline elements | Set display: block or flex |
Forgetting to reset default body margins | Use margin: 0 on body |
✅ Summary
Task | CSS Code |
---|---|
Full width | width: 100% |
Full height (requires parent) | height: 100% + parent height |
Fullscreen | width: 100vw; height: 100vh; |
🚀 Final Thoughts
Setting width: 100%
is usually simple, but getting height: 100%
to work correctly requires the parent to have a defined height. Use viewport units (vh
, vw
) for full-page elements and set html
, body
to 100% height
when needed.
💡 Pro tip: Use
box-sizing: border-box
to ensure padding and borders don’t push your 100% elements beyond their intended size.