JSFiddle - React, Tailwind, and code Playground

by adamschwartz

HTML

<div class="this-div-causes-the-issue"></div>

<div>
  <button>Toggle issue</button>
</div>

<ul class="grid">
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
</ul>

CSS

html {
  background: #fff;
  margin: 20px;
}

.this-div-causes-the-issue {
  position: fixed;
  top: -100px;
  left: -100px;
}

.grid {
  list-style: none;
  position: relative;
  font-size: 15px;
  line-height: 1.5;
  margin: 20px 0 0;
  margin-bottom: -1.5rem;
  padding: 0;
  display: -webkit-box;
  display: -moz-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: box;
  display: flex;
  -webkit-box-lines: multiple;
  -moz-box-lines: multiple;
  -o-box-lines: multiple;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  list-style: none;
  width: calc(100% + 1px);  
}

.grid li {
  height: 100px;
  position: relative;
  overflow: hidden;
  background: #f1f1f1;
  padding-bottom: 1.25em;
  margin-bottom: 1.5rem;
  width: calc(((100% - 1px) - 4.5rem) / 4);
}

.grid li:not(:nth-child(4n+4)) {
  margin-right: 1.5rem;
}

.grid li::after {
  position: absolute;
  content: "";
  display: block;
  pointer-events: none;
  border: 1px solid rgba(0,0,0,.1);
  border-radius: 0;
  z-index: 1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

JavaScript

document.querySelector('button').addEventListener('click', function(){
  var el = document.querySelector('.this-div-causes-the-issue');
  el.style.display = el.style.display === 'none' ? 'block' : 'none';
});