<h2>fit-content(120px)</h2>
<p>
  <label for="control">Resize:</label>
  <input type="range" id="control" value="100">
</p>
<div class="container container--max">
  <div class="item">1 1 1 1 1 1 1 1 1 1 1 1</div>
  <div class="item">2 2</div>
  <div class="item">3 3 3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
</div>
/* -------- Skip this base code -------- */
* { box-sizing: border-box; } h2 { margin: 0; font-size: 24px; } .container { display: grid; grid: '. . .'; gap: 1px; padding: 1px; border: 16px solid silver; color: white; } .item { padding: 8px; background: coral; } .container--max .item:nth-child(1) { background: royalblue; }

.container { 
  grid-auto-columns: fit-content(120px); 
}
document.querySelector('#control').addEventListener('input', function(e) {
  const containerElement = document.querySelector('.container');
  const itemElement = document.querySelector('.item');
  containerElement.style.width = e.target.value + '%';
  
  if (itemElement.offsetWidth === 120) {
    containerElement.classList.add('container--max');
  } else {
    containerElement.classList.remove('container--max');
  }
});

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.