css - 如何在没有列跨度的情况下分解 Firefox 中的列布局?

标签 css firefox css-multicolumn-layout

我刚刚发现 Firefox 还不支持 CSS 属性“column-span”。没有“column-span”,分解列布局似乎行不通。是否有解决方法来实现相同的结果?

最佳答案

Firefox 尚不支持 column-span。但是,您可以使用 HTML 结构解决此问题。

假设您需要一个 column-span:2 标题,而段落应该有 2 列。

喜欢:

<article>
   <p>Introduction - this should span everything too</p>
   <h2>This should span everything</h2>
   <p>this text should be multicolumn</p>
   <h2>This should span everything again</h2>
   <p>this text should be multicolumn again</p>
</article>

逻辑方法是做类似的事情:

article {
   column-count: 2;
}

article > p:nth-child(1) {
  column-span: all;
}

article > h2 {
  column-span: all;
}

但如前所述,这在 Firefox 中会严重中断。它还会导致一些问题,有时文本会在 Safari 上被截断。在撰写本文时,只有 Chrome 显示出令人满意的结果。

在这种情况下,您可以完全避免列跨度:

article {
    // no need
}

article > p:nth-child(1) {
     // no need
}

article > p:nth-child(n+2)  {
   column-count: 2;
}

article > h2 {
    // no need
}

您可以直接在段落上应用样式。

结果在 Firefox、Safari 和 Chrome 上看起来不错。而且它的代码更少。因此,也许您可​​以稍微调整一下 HTML,这样您就根本不依赖 column-span。

关于css - 如何在没有列跨度的情况下分解 Firefox 中的列布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39724883/

相关文章:

列表项的 CSS 多列布局在 Chrome 中未正确对齐

javascript - Ionic 中的嵌套复选框元素

css - 可视化 CSS 结构并比较它们的东西

html - 没有填充/边距的 Bootstrap 表?

css - Chrome 按钮附加填充

css - 在 css3 列中插入分栏符

html - 在 bootstrap 中有多个行和列在彼此内部是一种好的做法

http - Firefox 插件或监控所有请求数据的方式,包括下载到浏览器的 header 和内容

python - 如何使用 Python 退出通过 GeckoDriver 和 Selenium 启动的所有 Firefox 进程

CSS 列内的 CSS 转换消失 (Chrome)