title: Why is there a hairline gap / border between these block elements in Chrome but not Firefox
body: <p>When I add a background color to a container and then stack block elements inside, there is a hairline gap visible between the elements in Chrome. No such gap exists in Firefox.</p>
  
  <p>Why? And how can this be avoided without additional wrapper elements?</p>
  
  <p>It's easier to see in this JS Bin: <a href="https://razor-x.jsbin.com/teqevoc/6/edit?html,css,output" rel="nofollow noreferrer">https://razor-x.jsbin.com/teqevoc/6/edit?html,css,output</a></p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-css lang-css prettyprint-override"><code>.main {
    background-color: black;
  }
  
  .item {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100px;
    background-color: white;
  }</code></pre>
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;div class="main"&gt;
    &lt;div class="item"&gt;1&lt;/div&gt;
    &lt;div class="item"&gt;2&lt;/div&gt;
    &lt;div class="item"&gt;3&lt;/div&gt;
  &lt;/div&gt;</code></pre>
  </div>
  </div>
  </p>
  
  <p><a href="https://i.stack.imgur.com/8EhxF.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/8EhxF.png" alt="enter image description here"></a></p>