EDIT:
So I saw the duplicate link that was pointed to, and in my opinion, this question is to solve issues where you have given a fixed size (fixed width or fixed height).
The original question's solution is more about fixing the container using hacky methods. I decided to make a different approach of fixing it, while also fixing my own issue laid out in this question.
In CSS, when working with display: grid
and fixed height
, with overflow: auto
turned on, you may get this kind of layout, shown below:
.scroll {
overflow: auto;
background-color: #bbddee;
}
.container {
padding: 10px;
display: grid;
grid-template-columns: 1fr;
grid-row-gap: 10px;
height: 420px;
}
.itemContainer {
border: 1px solid #efefef;
padding: 10px 20px;
background-color: #fff;
}
.itemTitle {
text-align:center;
margin: 0 auto;
}
.itemLink {
text-align: center;
margin: 0 auto;
}
<div id="retailerContent" class="tab-pane fade in active show">
<div class="scroll">
<div id="retailerOffersContainer" class="container">
<div class="itemContainer">
<div class="itemTitle">15% Off Room Essentials Cubes & Bins</div>
<div class="itemLink"><a>Get Offer ></a></div>
</div>
<div class="itemContainer">
<div class="itemTitle">15% Off Room Essentials Cubes & Bins</div>
<div class="itemLink"><a>Get Offer ></a></div>
</div>
<div class="itemContainer">
<div class="itemTitle">15% Off Room Essentials Cubes & Bins</div>
<div class="itemLink"><a>Get Offer ></a></div>
</div>
<div class="itemContainer">
<div class="itemTitle">15% Off Room Essentials Cubes & Bins</div>
<div class="itemLink"><a>Get Offer ></a></div>
</div>
<div class="itemContainer">
<div class="itemTitle">15% Off Room Essentials Cubes & Bins</div>
<div class="itemLink"><a>Get Offer ></a></div>
</div>
<div class="itemContainer">
<div class="itemTitle">15% Off Room Essentials Cubes & Bins</div>
<div class="itemLink"><a>Get Offer ></a></div>
</div>
<div class="itemContainer">
<div class="itemTitle">15% Off Room Essentials Cubes & Bins</div>
<div class="itemLink"><a>Get Offer ></a></div>
</div>
<div class="itemContainer">
<div class="itemTitle">15% Off Room Essentials Cubes & Bins</div>
<div class="itemLink"><a>Get Offer ></a></div>
</div>
<div class="itemContainer">
<div class="itemTitle">15% Off Room Essentials Cubes & Bins</div>
<div class="itemLink"><a>Get Offer ></a></div>
</div>
<div class="itemContainer">
<div class="itemTitle">15% Off Room Essentials Cubes & Bins</div>
<div class="itemLink"><a>Get Offer ></a></div>
</div>
<div class="itemContainer">
<div class="itemTitle">15% Off Room Essentials Cubes & Bins</div>
<div class="itemLink"><a>Get Offer ></a></div>
</div>
<div class="itemContainer">
<div class="itemTitle">15% Off Room Essentials Cubes & Bins</div>
<div class="itemLink"><a>Get Offer ></a></div>
</div>
<div class="itemContainer">
<div class="itemTitle">15% Off Room Essentials Cubes & Bins</div>
<div class="itemLink"><a>Get Offer ></a></div>
</div>
</div>
</div>
</div>
When this happens, there is an issue where there are no paddings/margins down at the very bottom of the scroll list. How should the HTML and CSS be modified, so the bottom padding/margin would show up inside a scrollable CSS grid layout?
This is my fix for when I was using CSS Grids:
/* Fix scrollbar removing padding-bottom */
@supports (-moz-appearance:none) {
.container::after {
content: "";
height: 1px;
margin: calc(var(--padding) - var(--gap));
}
}