<p>Вибери потрібні значення для <code>flex-flow</code>:</p>

<select id="form-1">
  <option value="row" name="value1" selected>row</option>
  <option value="row-reverse" name="value1">row-reverse</option>
  <option value="column" name="value1">column</option>
  <option value="column-reverse" name="value1">column-reverse</option>
</select>

<select id="form-2">
  <option value="nowrap" name="value2" selected>nowrap</option>
  <option value="wrap" name="value2">wrap</option>
  <option value="wrap-reverse" name="value2">wrap-reverse</option>
</select>

<p id="text-1"></p>
<p id="text-2"></p>

<hr>

<div class="layout">
  <header>
    <h4>Simple website</h4>
  </header>
  <main>
    <nav>
      <a href="#">Item 1</a>
      <a href="#">Item 2</a>
      <a href="#">Item 3</a>
      <a href="#">Item 4</a>
    </nav>
    <section id="wrapper">
      <div class="child child-1">1</div>
      <div class="child child-2">2</div>
      <div class="child child-3">3</div>
    </section>
  </main>
  <footer>
    &copy; 2017
  </footer>
</div>
* {
  box-sizing: border-box;
  padding: 0;
}

body {
  text-align: center;
  font-family: momospace;
  font-size: 17px;
  line-height: 1.5;
  color: #222;
}

p {
  text-align: left;
}

#form-1,
#form-2 {
  padding: 8px 16px;
  font-size: 19px;
}

header {
  line-height: 75px;
  text-align: center;
  text-transform: uppercase;
  background-color: #808080;
  color: #f9f9f9;
}

main {
  display: flex;
}

nav {
  width: 30%;
  background-color: yellow;
  padding: 16px;
}

nav a {
  display: block;
  margin-bottom: 16px;
  text-align: left;
  text-decoration: none;
  color: #151515;
}

#wrapper {
  background-color: #eee;
  
  display: flex;
  
  padding: 16px;
  flex: 1;
}

.child {
  width: 25%;
  color: #f1f1f1;
  font-weight: 700;
  border-radius: 4px;
  background-color: #444;
  border: 4px solid #666;
  margin: 5px;
}

footer {
  line-height: 50px;
  background-color: #000;
  color: #f1f1f1;
  margin-top: 16px;
}
var wrapper = document.getElementById('wrapper');
var form1 = document.getElementById('form-1');
var form2 = document.getElementById('form-2');
var text1 = document.getElementById('text-1');
var text2 = document.getElementById('text-2');

  var textArray = {'row': 'Контейнери будуть розташовані зліва направо. Якщо значення dir задано як rtl, то напрямок буде справа наліво. За замовчуванням.',
                   'row-reverse': 'Теж саме, що і row, але в зворотному порядку.',
                   'column': 'Флекс елементи відображаються у вигляді стовпчика. Стовпчик формується зверху вниз.',
                   'column-reverse': 'Теж саме, що і column, але знизу вверх.',
                  'nowrap': 'Знесення заборонене. Гнучкі елементи шикуються в одну лінію. За замовчуванням.',
                  'wrap': 'Гнучкі елементи шикуються в кілька рядків, їх напрямок задається властивістю flex-direction.',
                  'wrap-reverse': 'Гнучкі елементи шикуються в кілька рядків, в напрямку, протилежному flex-direction.'};

form1.onchange = form2.onchange = function change() {
  
  var newVal = getNewValue();  
  wrapper.style.flexFlow = newVal[0] + ' ' + newVal[1];
  text1.innerHTML = 'flex-direction: ' + textArray[newVal[0]];
  text2.innerHTML = 'flex-wrap: ' + textArray[newVal[1]];
  
}

function getNewValue() {
  
  var result = [];
  
  for (var i = 0; i < form1.options.length; i++) {
    if (form1.options[i].selected == true) {
      result[0] = form1.options[i].value;
    }
  }
  
  for (var i = 0; i < form2.options.length; i++) {
    if (form2.options[i].selected == true) {
      result[1] = form2.options[i].value;
    }
  }
  
  return result;
  
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.