What Are the Default Margins For the HTML Heading Tags (≪H1≫, ≪H2≫, ≪H3≫, etc.)

What are the default margins for the html heading tags (h1, h2, h3, etc.)?

It's different regarding which browser, thus if you want a pixel-perfect design then practice is to "reset" those values to 0 (margin and padding) and set them yourself.

"CSS reset" is very common to front-end developers, a simple example of one i use :

a,a *{cursor:pointer}

Do HTML Headings (h1 - h6) have a default padding in any browser?

Headings by default have a padding of 0. However, by default an H1 for example
has a top and bottom margin: .67em;. These top-bottom margins grow all the way to 2.33em for an H6. So for each heading, the top and bottom margins gradually increase by default.

Check out this helpful article by W3Schools which is insightful when discussing the defaults for all HTML elements.

So to answer your question. Yes, the padding: 0; is unnecessary. However, the margin: 0; will change the default top and bottom margins.

how to make a header fit the page limits

h2 {
margin: 0;

h2 tag has the default margin so just make it 0.

Why do headers, h1 h2 etc.. create extra space around the text?



In the CSS. Your browser gives the elements margins/padding by default, and you have to explicitly remove them.

I can't find where this margin is coming from using Mozilla's Dev Tools

heading tags by default have a top and bottom margin. I believe it is 0.67em.

Remove margin from text

You need to remove the margin from the h1 tag not the div, this is because the h1 element has a default margin.

.text {
position: absolute;
margin: 0;
left: 30px;
right: 0;
text-align: left;
top: 40%; /* Adjust this value to move the positioned div up and down */
color: black;
text-shadow: 3px 3px 1px rgba(0, 0, 0, 0.16);
font-size: 75px;

.text h1{
margin-top: 0;
margin-bottom: 0;
<div class="text">

Is there any reason here?

h elements have default margins. your h1 and h2 cause it.

#one h1, #two h2 {

h6 element takes more space than it should

All heading tags (like your <h6>) by default have some amount of top and bottom margin to them. Additionally, if you have other styles in your project, they may be adding more.

If you do not want those margins, you can do this, which should likely fix your issue:

.logintitle h6 { margin: 0; }

Related Topics

Leave a reply