如何让嵌套在 flexbox 中的 CSS 网格中的文本先换行?

How to get text in a CSS grid nested in a flexbox to wrap first?

TL;DR: 这是一个 CodePen.


我有一个 UI,其中有一张图片和一个带有长行的文本网格,如下所示:

我正在使用 CSS 具有两个元素的 Flexbox:图像和文本。然后为了布置文本,我使用 CSS 网格。现在,当我在移动设备的窄屏上查看时,它正确地包装了所有内容并堆叠了两个元素:

但在桌面上,稍微窄一些 div,弹性框在网格文本之前换行,如下所示:

在这种情况下,如何让文本换行,同时保留弹性框?我担心我可能需要使用一些媒体查询,但我什至不确定我是否为此使用了正确的 CSS 组件。

代码如下:

index.html:

<div class="media-callout">
    <div class="media-thumb">
        <img height="170" width="120">
    </div>
    <div class="media-callout-grid">
        <div class="media-callout-key">Authors</div>
        <div>Babalola, J &amp; Ogunkola, Babalola</div>

        <div class="media-callout-key">Year</div>
        <div>2013</div>

        <div class="media-callout-key">Title</div>
        <div class="media-callout-value"><a href="https://www.mcser.org/index.php/37-archive/jesr-archive/jesr-2013/615-jesr-vol-3-no-1-january-2013-2">Scientific Literacy: Conceptual Overview, Importance and Strategies for Improvement</a></div>

        <div class="media-callout-key">Journal</div>
        <div><em>Journal of Educational and Social Research</em></div>

        <div class="media-callout-key">Location</div>
        <div>vol. 3, no. 1, pp. 265–274</div>

        <div class="media-callout-key">DOI</div>
        <div><a href="https://doi.org/10.5901/jesr.2013.v3n1p265" target="_blank">10.5901/jesr.2013.v3n1p265</a></div>

    </div>
</div>

style.css:

.media-callout {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    row-gap: 20px;
    column-gap: 10px;

    padding: 1em;
    max-width: max-content;
}
.media-thumb img {
    float: left;
    height: 175px;
    width: auto;
}

.media-callout-grid {
    display: grid;
    font-size: 12pt;
    grid-template-columns: 6em 1fr;
    align-content: center;
    gap: 0 15px;
}
.media-callout-key {
    text-align: right;
    font-weight: bold;
}

.media-callout-value {
    word-break: break-word;
    word-wrap: break-all;
}

媒体查询确实解决了这个问题:

@media screen and (min-width: 600px) {
    .media-callout {
        flex-wrap: nowrap;
    }
}

查询必须在 .media-callout 块之后。我还必须使用 this approach 来防止图像被压扁。