Что вы пытаетесь сделать здесь?Хотите, чтобы ваш код делал то, что вы показываете на своем изображении?
Сначала я думаю, что вы ошибаетесь, пытаясь смешать правила начальной загрузки и жестко запрограммированные CSS.А для чего <div class="w-100"></div>
?
Хотите, чтобы 2x2 блока или 4 блока отображались в строке?
Для первого случая вам понадобится код:
<div class="row">
<div class="col-md-6 colMenu">
<h3>SAMPLE TEXT</h3>
<img src="./assets/img/sample.png" class="menuImg">
</div>
<div class="col-md-6 colMenu">
<h3 >SAMPLE TEXT</h3>
<img src="./assets/img/sample.png" class="menuImg">
</div>
<div class="col-md-6 colMenu">
<h3>SAMPLE TEXT</h3>
<img src="./assets/img/sample.png" class="menuImg">
</div>
<div class="col-md-6 colMenu">
<h3 >SAMPLE TEXT</h3>
<img src="./assets/img/sample.png" class="menuImg">
</div>
</div>
Во втором случае вам нужно заменить col-md-6 на col-md-3 следующим образом:
<div class="row">
<div class="col-md-3 colMenu">
<h3>SAMPLE TEXT</h3>
<img src="./assets/img/sample.png" class="menuImg">
</div>
...
Теперь, если вы хотите, чтобы он был центрирован и меньше, вам нужноиграть со смещением и уменьшить размер.Для первого примера у вас будет <div class="col-md-offset-1 col-md-5">
и <div class="col-md-offset-5 col-md-5">
или что-то вроде этого;)
https://getbootstrap.com/docs/4.0/layout/grid/#offset-classes