С помощью CSS Grid вы можете заставить main
и aside
брать половину доступной ширины и автообтекание , когда любой из элементов сетки попадет в минимум ширина с использованием grid-template-columns: repeat(auto-fit, minmax(300px, 1fr))
- см. Демонстрацию ниже:
body {
margin: 0;
}
#structure-content {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}
main {
background: aliceblue;
}
aside {
background: cadetblue;
}
<div id="structure-content">
<main>content goes here</main>
<aside>aside content</aside>
</div>
Решение
С помощью CSS Grid я бы сказал, что вы можете использовать mediaзапросы .В любом случае flexbox будет работать здесь хорошо:
- использовать упаковку flexbox
- сохранить
min-width
для каждого из aside
и main
и добавьте flex: 1
к , согните его в оставшееся пространство, если доступно - см. демонстрацию ниже:
body {
margin: 0;
}
#structure-content {
display: flex;
flex-wrap: wrap; /* a wrapping flexbox */
}
main {
background: aliceblue;
min-width: 75vw; /* forces aside to take one-fourth space */
flex: 1;
}
aside {
background: cadetblue;
min-width: 250px; /* minimum width of aside */
flex: 1;
}
<div id="structure-content">
<main>content goes here</main>
<aside>aside content</aside>
</div>