Используя свойство CSS order
, можно.
#container {
display: flex;
flex-direction: column;
text-align: center;
}
.sidebar-right,
.sidebar-left,
.sidebar-middle {
width: 100%;
}
.sidebar-right {
order: 1;
}
.sidebar-left {
order: 3;
}
.sidebar-middle {
order: 2;
}
<div id="container">
<div class="sidebar-right">One</div>
<div class="sidebar-left">Two</div>
<div class="sidebar-middle">Three</div>
</div>
Для больших дисплеев вы можете использовать медиа-запросы. Например, если ширина устройства превышает 1024, это означает, что вы можете установить flex-direction: unset;
#container {
display: flex;
flex-direction: column;
}
.sidebar-right,
.sidebar-left,
.sidebar-middle {
width: 33.33%;
float: left;
}
.sidebar-right {
order: 1;
}
.sidebar-left {
order: 3;
}
.sidebar-middle {
order: 2;
}
@media screen and (min-width: 1024px) {
#container {
flex-direction: unset;
}
}
<div id="container">
<div class="sidebar-right">One</div>
<div class="sidebar-left">Two</div>
<div class="sidebar-middle">Three</div>
</div>