Пример #3
Верстка на Flexbox
<style> body { font-family: sans-serif; padding: 15px; color: #eee; font-size: 5rem; } .flex-box { display: flex; flex-wrap: wrap; max-width: 1200px; margin: 0 auto; } .base { background: #016801; min-height: 400px; display: flex; justify-content: center; align-items: center; flex: auto; } .side { margin-left: 30px; display: flex; flex: 0 0 300px; flex-direction: column; } .side-itm { background: #01016d; min-height: 200px; margin-bottom: 30px; display: flex; justify-content: center; align-items: center; flex: auto; } /* Последний элемент */ .side-itm:last-child { margin-bottom: 0; } @media screen and (max-width: 800px) { .base { margin-bottom: 30px; flex: 0 1 100%; } .side { margin-left: 0; flex: 1 1 100%; flex-direction: row; } .side-itm { margin: 0 0 0 30px; } /* Первый элемент */ .side-itm:first-child { margin-left: 0; } } @media screen and (max-width: 600px) { .side { flex-direction: column; } .side-itm { margin: 0 0 30px; } /* Последний элемент */ .side-itm:last-child { margin-bottom: 0; } } </style> <body> <div class="flex-box"> <div class="base">1</div> <div class="side"> <div class="side-itm">2</div> <div class="side-itm">3</div> </div> </div> </body>
Результат Примера #3
Вид на большом экране
Вид на среднем экране
Вид на малом экране
Описание макета:
- Макет состоит из flex-контейнера (flex-box) размером 1200px с элементами: base и side, которые строятся в строку.
- Элемент side состоит из 2-х вложенных элетентов: side-itm, которые расположены в колонку.
- При ширине экрана меньше 800px элементы side меняют направление и располагаются в строку.
- При ширине экрана менее 600px элементы side вновь меняют направление располагаются в колонку.