Solution 1 :

By using CSS order property it is possible.

#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>

For larger displays, you can use media quires. For example, if the device width is greater than 1024 means you can set the 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>

Problem :

I use a WordPress template in which there are three main divisions

<div class="sidebar-right"></div>
<div class="sidebar-left"></div>
<div class="sidebar-middle"></div>

using float:right it arranges the divisions as three columns. However in mobile version the left sidebar disappears. I tried to display it, but it then appears between the right sidebar and middle, while I want it to be under the middle! Can I achieve this goal by changing CSS? or should I reorder them in the template?

Comments

Comment posted by jsfiddle

Please provide an working example in

Comment posted by Ahmad

Thanks, but how can I show them side by side in large screen?

Comment posted by Bhavanaditya

added another answer for larger devices @Ahmad

By