flex-box responsiveness

Example for stackoverflow answer.

by FUZIION

HTML

<div class="wrapper">
  <ol>
    <div>
      <li>
        <div class="input-item">
          <label for="item1">Item 1</label>
          <input type="text" id="item1" name="item1">
          <div class="error"></div>
        </div>
      </li>

      <li>
        <div class="input-item">
          <label for="item2">Item 2</label>
          <input type="text" id="item2" name="item2">
          <div class="error"></div>
        </div>
      </li>

      <li>
        <div class="input-item">
          <label for="item3">Item 3</label>
          <input type="text" id="item3" name="item3">
          <div class="error"></div>
        </div>
      </li>

      <li>
        <div class="input-item">
          <label for="item4">Item 4</label>
          <input type="text" id="item4" name="item4">
          <div class="error"></div>
        </div>
      </li>
    </div>
    <div>
      <li>
        <div class="input-item">
          <label for="item5">Item 5</label>
          <input type="text" id="item5" name="item5">
          <div class="error"></div>
        </div>
      </li>

      <li>
        <div class="input-item">
          <label for="item6">Item 6</label>
          <input type="text" id="item6" name="item6">
          <div class="error"></div>
        </div>
      </li>

      <li>
        <div class="input-item">
          <label for="item7">Item 7</label>
          <input type="text" id="item7" name="item7">
          <div class="error"></div>
        </div>
      </li>

      <li>
        <div class="input-item">
          <label for="item8">Item 8</label>
          <input type="text" id="item8" name="item8">
          <div class="error"></div>
        </div>
      </li>
    </div>
  </ol>
  <br />

  <button id="button" onclick={validateForm()}>
        Submit
    </button>
</div>

CSS

ol {
  background-color: lightblue;
  list-style-type: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
}

ol div {
  padding: 0 5px;
}

@media (max-width: 500px) {
  ol {
    display: block;
    max-height: none;
  }
}

ol li {
  flex: 1 auto;
}

.error {
  color: firebrick;
}

@media only screen and (max-width: 787px
/* mobile */

) {
  ol {
    flex-direction: column!important;
  }
}

JavaScript

const submitButton = document.getElementById("button");
submitButton.onclick = validateForm;

/* Checks to see if the form inputs are empty. If so, display error message */
function validateForm() {
  const inputItems = document.getElementsByClassName('input-item')

  for (const item of inputItems) {
    const input = item.children[1]
    if (input.value === '') {
      item.children[2].innerHTML = 'Enter an input'
    }
  }
}