我如何告诉 Firefox div 可以跨越多个列?

How do I tell to Firefox that it's fine for a div to span multiple columns?

a page 上,当页面足够大时,我使用的布局是将文本放置在两列中。这在 Chromium 中运行良好,但在 Firefox 中运行不佳。

内容结构如下:

<main style="columns: 2;">
    <h1>Title goes here</h1>
    <div>Date, author, and other stuff.</div>
    <div>
        <p>...</p>
        <p>...</p>
        <p>...</p>
         ⋮
        <p>...</p>
    </div>
</main>

由于最后一个 <div> 包含大部分内容,Chromium 将 <h1>、第一个 <div> 和最后一个 <div> 的开头放在第一个列,以及第二列最后 <div> 的剩余部分(图 1)。然而,Firefox 90.0.2 将整个最后 <div> 移动到第二列(图 2)。

我注意到如果我删除最后一个 <div>,将所有段落作为 <main> 的直接子项,Firefox 开始显示类似于 Chromium 的内容。但是,我宁愿保持现在的 DOM,而是理解为什么 Firefox 会这样。

图 1 Chromium 显示了我希望显示的列。

图2‖Firefox将整个文章正文移动到第二栏

问题是 p 元素嵌套在 div 中。您可以对 div.content 使用 display: contents 以强制浏览器 忽略其层次结构

contents
The element itself does not generate any boxes, but its children and pseudo-elements still generate boxes and text runs as normal.

Source: 2.5. Box Generation: the none and contents keywords | w3.org

基于您网站的示例:

main {
   columns: 2;
}

.content {
   display: contents;
}
<main>
    <h1>Title goes here</h1>
    <div>Date, author, and other stuff.</div>
    <div class="content">
        <p>text</p>
        <p>text</p>
        <p>text</p>
        <p>text</p>
        <p>text</p>
    </div>
</main>