Flex - это не то, что Flex - любое решение → justify-content: пространство между и полная гибкость вложенных элементов не сосуществуют
Я думаю, что даже если мы посвятили 33% вложенному элементу flex и 67%, например, но если другой элемент недоступен, тогда обсуждаемый элемент занимает 100%, но смотрите здесь → нажмите здесь, даже если вы удалите эту часть →
<aside class="main-sidebar col">
основное содержание не занимает всю ширину. в чем дело?
Я попробовал одно лекарственное решение →
Я убираю ширину из
.flex-main
и использовал flex:1 0 68.8%
, но это тоже создало проблему. Это разрушено → .content{justify-content:space-between;}
Я считаю, что должно быть какое-то решение. Какие-либо предложения?
ФОН → Причина, по которой я выбираю flex, заключается в том, что это веб-сайт WordPress. В WordPress часто требуется, чтобы мы могли перевернуть два столбца, т.е. основную область содержимого и боковую панель, но когда мы используем жесткий CSS, как это →
margin-right: 20px;
сальто становится очень сложным, и это не так гладко.
Идея была перевернуть заказы, и, следовательно, перевернуть столбцы, т.е. order:1
следует изменить на order:2
и наоборот, пока это свойство .content{justify-content:space-between;}
всегда обеспечивает разрыв между двумя столбцами. Это все имеет смысл?
Теперь просто измените ордера, и вы поймете, насколько легко и плавно переворачивать, просто изменив порядок, и пока мы делаем это, разрыв также сохраняется из-за этого → .content{justify-content:space-between;}
Все звучит нормально до сих пор? Есть смысл? мы на одной странице? Теперь попробуйте удалить →
` <aside class="main-sidebar col">
</aside>`
flex-main
Это не проблема, и я уверен, что это будет нелегко.
ОБЪЯСНЕНИЕ ВИДЕО [В видео заполнение заказа опечатано, это фактически заполнение заказа.]
1 ответ
если удалить
main-sidebar col
,flex-main
не расширяется, что является проблемой, и я уверен, что это не будет легко исправить это
Для этого есть очень простое решение. Если вы добавите .flex-main:only-child { flex: 1; }
к вашим правилам CSS, это будет работать так, как вы хотите.
Итак, в основном, что происходит здесь, когда вы удаляете main-sidebar
:only-child
селектор сработает.
Вот 2 фрагмента, с тем же CSS, первый с .main-sidebar
...
.content {
display:flex;
height: 100vh;
justify-content:space-between;
}
.flex-main {
width:68.8%;
order:2;
background: blue;
}
.flex-main:only-child {
flex: 1;
}
.main-sidebar {
/*background: #323232;*/
background: #ffffff;
width: 29%;
color:black;
order:1;
background: yellow;
}
<div class="content">
<div class="flex-main">
<div class="main col">
</div>
</div>
<aside class="main-sidebar col">
</aside>
</div>
... второй без .main-sidebar
.content {
display:flex;
height: 100vh;
justify-content:space-between;
}
.flex-main {
width:68.8%;
order:2;
background: blue;
}
.flex-main:only-child {
flex: 1;
}
.main-sidebar {
/*background: #323232;*/
background: #ffffff;
width: 29%;
color:black;
order:1;
background: yellow;
}
<div class="content">
<div class="flex-main">
<div class="main col">
</div>
</div>
</div>