skip to Main Content

I have been trying to use a static image on my website, but there is a large gap between the header and the image, I’ve tried removing padding and changing the image height in Photoshop and in HTML.
Here’s a fiddle of my problem https://jsfiddle.net/o27w80ve/

section.module:last-child {
  margin-bottom: 0;
}

section.module h2 {
  font-family: "Roboto Slab", serif;
  font-size: 30px;
}

section.module p {
  margin-bottom: 40px;
  font-size: 16px;
  font-weight: 300;
}

section.module p:last-child {
  margin-bottom: 0;
}

section.module.content {
  padding: 40px 0;
  color: #090C02;
}

section.module.content#section1 {
  background-color: #b23783;
}

section.module.content#section2 {
  background-color: #3783b2;
}

section.module.parallax {
  height: 600px;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-size: cover;
}

section.module.parallax h1 {
  color: #8FD5A6;
  font-size: 48px;
  line-height: 600px;
  font-weight: 700;
  text-align: center;
  text-transform: uppercase;
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
  font-family: 'Julius Sans One', sans-serif;
}

section.module.parallax-1 {
  background-image: url("https://i.imgur.com/YpRAOt3.jpg");
}

@media all and (min-width: 600px) {
  section.module h2 {
    font-size: 42px;
  }
  section.module p {
    font-size: 20px;
  }
  section.module.parallax h1 {
    font-size: 96px;
  }
}

@media all and (min-width: 960px) {
  section.module.parallax h1 {
    font-size: 160px;
  }
}

.header ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background-color: #1e1e20;
}

.header li {
  float: right;
  text-align: middle;
}

.header li a {
  display: block;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
  font-family: 'Bitter', serif;
}

.header li:hover {
  background-color: #fec10e;
  color: black;
}
<header class="header">
  <div>
    <ul>
      <li><a href="/">Testr Co.</a></li>
      <li><a href="#">Home</a></li>
      <li><a href="#">About Us</a></li>
      <li><a href="#">Blog</a></li>
    </ul>
  </div>
</header>
<section class="module parallax parallax-1">
  <div class="container">
    <h1>Example</h1>
  </div>
</section>

2

Answers


  1. That’s called “margin collapse.” The defaut margin-top on the h1 is collapsing outside of the parent.

    https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model/Mastering_margin_collapsing

    Parent and first/last child – If there is no border, padding, inline content, block_formatting_context created or clearance to separate the margin-top of a block from the margin-top of its first child block, or no border, padding, inline content, height, min-height, or max-height to separate the margin-bottom of a block from the margin-bottom of its last child, then those margins collapse. The collapsed margin ends up outside the parent.

    section.module:last-child {
      margin-bottom: 0;
    }
    
    section.module h2 {
      font-family: "Roboto Slab", serif;
      font-size: 30px;
    }
    
    section.module p {
      margin-bottom: 40px;
      font-size: 16px;
      font-weight: 300;
    }
    
    section.module p:last-child {
      margin-bottom: 0;
    }
    
    section.module.content {
      padding: 40px 0;
      color: #090C02;
    }
    
    section.module.content#section1 {
      background-color: #b23783;
    }
    
    section.module.content#section2 {
      background-color: #3783b2;
    }
    
    section.module.parallax {
      height: 600px;
      background-position: 50% 50%;
      background-repeat: no-repeat;
      background-attachment: fixed;
      background-size: cover;
    }
    
    section.module.parallax h1 {
      color: #8FD5A6;
      font-size: 48px;
      line-height: 600px;
      font-weight: 700;
      text-align: center;
      text-transform: uppercase;
      text-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
      font-family: 'Julius Sans One', sans-serif;
      margin-top: 0;
    }
    
    section.module.parallax-1 {
      background-image: url("https://i.imgur.com/YpRAOt3.jpg");
    }
    
    @media all and (min-width: 600px) {
      section.module h2 {
        font-size: 42px;
      }
      section.module p {
        font-size: 20px;
      }
      section.module.parallax h1 {
        font-size: 96px;
      }
    }
    
    @media all and (min-width: 960px) {
      section.module.parallax h1 {
        font-size: 160px;
      }
    }
    
    .header ul {
      list-style-type: none;
      margin: 0;
      padding: 0;
      overflow: hidden;
      background-color: #1e1e20;
    }
    
    .header li {
      float: right;
      text-align: middle;
    }
    
    .header li a {
      display: block;
      color: white;
      text-align: center;
      padding: 14px 16px;
      text-decoration: none;
      font-family: 'Bitter', serif;
    }
    
    .header li:hover {
      background-color: #fec10e;
      color: black;
    }
    <header class="header">
      <div>
    
        <ul>
          <li><a href="/">Testr Co.</a></li>
          <li><a href="#">Home</a></li>
          <li><a href="#">About Us</a></li>
          <li><a href="#">Blog</a></li>
        </ul>
      </div>
    </header>
    <section class="module parallax parallax-1">
      <div class="container">
        <h1>Example</h1>
      </div>
    </section>
    Login or Signup to reply.
  2. After inspecting your code you can notice that the ‘section.module.parallax h1’ has a margin-top of 40px.
    You need to use this (margin-top:0) to remove the gap.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search