Вы можете использовать flexbox для вашего макета. Вы можете найти хорошую точку для начала на MDN .
Когда вы используете небольшое устройство, вы можете использовать медиа-запрос, чтобы получить div для столбца.
Например:
@media (max-width: 600px) {
.container{
flex-direction:column;
}
#left,#right{
flex: 0 1 100%;/* set the width to 100% for the 2 columns */
}
}
.container{
display:flex;
}
#left {
flex:0 1 300px;
height: 300px;
background-color: blue;
}
#right {
flex:1 1 auto;
height: 300px;
background-color: darkred;
}
<div class="container">
<div id='left'></div>
<div id='right'></div>
</div>