将表拆分为CSS列,在Firefox中发布

时间:2019-02-20 19:30:15

标签: html css css3 css-multicolumn-layout

我有一个表,该表应该分为两列(布局列,而不是表列)。

在除Firefox之外的所有主流浏览器中都可以正常工作,该浏览器不会将表格分为两列。

.column-layout {
  columns: 2;
}
<div class="column-layout">
  <table>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
  </table>
</div>

您可以在Chrome中“运行代码段”以查看其外观。 Firefox在单个行中呈现表。

这样做的原因:有一些长表,应在printview中将其分为两列。

是否有解决方法来学习Firefox如何将表分成多列?

2 个答案:

答案 0 :(得分:1)

对于Firefox,您还需要打破表格布局显示 ,但是,它的行为不再像table,列和行将不再匹配不再使用rowspancolspan

最简单的方法是将表的元素重置为display:block;(考虑一下tbody,它是由浏览器生成的,即使HTML代码中缺少它也是如此)

.column-layout {
  columns: 2;
}


/* reset table-layout behavior of HTML table to allow here column-layout but loose the table-layout*/

.column-layout table,
.column-layout tbody,/* don't forget me, i'll be there */
.column-layout tr {
  display: block;
}
<div class="column-layout">
  <table>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
  </table>
</div>

pen to play with

答案 1 :(得分:0)

几乎每个浏览器都存在此属性的问题,如您所见,here

我尝试为此属性找到here的-moz标志,但该标志不起作用,因此我认为目前没有解决此问题的方法。为了确保它对所有用户都有效,我将使用table columns属性或使用CSS Grid之类的东西。