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';
});