Я хочу сложить два flex-элемента, когда это необходимо, используя flex-grow: 9999
«hack», я могу добиться этого, установив «description» для максимальной ширины, следуя правильному дизайну, но не хочучтобы сделать это, так как я хочу, чтобы его контейнер следовал за потоком сетки, а его дочерние элементы имели полную ширину (без ограничений по максимальной ширине или фиксированным значениям, т. е. динамический поток), затем прерывались при необходимости и избегали медиазапроса.Следующий фрагмент работает, как и ожидалось, , но с .description
max-width
, установленным с фиксированным значением:
*,
*::after,
*::before {
margin: 0;
padding: 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
border: none;
}
section.content-wrapper {
margin: 0 auto;
max-width: 975px;
display: grid;
grid-template-columns: repeat(10, 1fr);
grid-column-gap: 30px;
grid-row-gap: 44px;
}
section.content-wrapper .news.with-preview figure {
-webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
}
section.content-wrapper .news.with-preview figure img {
width: 100%;
}
section.content-wrapper .news.with-preview {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}
section.content-wrapper .news.with-preview .description {
-webkit-box-flex: 9999;
-ms-flex-positive: 9999;
flex-grow: 9999;
max-width: 228px;
}
section.content-wrapper .news {
border-top: 3px solid #dbdbdb;
grid-column: span 5;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
padding-top: 19px;
}
<section class="content-wrapper noticias">
<article class="news with-preview">
<figure>
<img src="https://placehold.it/200x200" alt="">
</figure>
<div class="description">
<h1>Aliquam erat volutpat. Morbi nunc dolor, tempus eu congue id, fringilla</h1>
<span>Amazonas</span>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam nec ex libero. Aliquam tristique egestas convallis. Vivamus ut sodales ligula…</p>
</div>
</article>
<article class="news with-preview">
<figure>
<img src="https://placehold.it/200x200" alt="">
</figure>
<div class="description">
<h1>Aliquam erat volutpat. Morbi nunc dolor, tempus eu congue id, fringilla</h1>
<span>Amazonas</span>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam nec ex libero. Aliquam tristique egestas convallis. Vivamus ut sodales ligula…</p>
</div>
</article>
</section>
Возможно, это неправильное представление о том, как работает flex + grid (или один flex).
Fiddle: https://jsfiddle.net/rhn8d20b/