【发布时间】:2017-06-29 15:10:39
【问题描述】:
我想要一个表格有一个第一个单元格,该单元格跨多个单元格,下面的单元格有垂直文本,如下例所示。
.second td * {
writing-mode: tb-rl;
-webkit-writing-mode: vertical-rl;
writing-mode: vertical-rl;
}
<table border=1><tr>
<td colspan=4>This cell has colspan=4</td>
</tr><tr class="second">
<td><div>Writing-mode:vertical-rl inside block</div></td>
<td><div>Writing-mode:vertical-rl inside block</div></td>
<td><div>Writing-mode:vertical-rl inside block</div></td>
<td><div>Writing-mode:vertical-rl inside block</div></td>
</tr></table>
<table border=1><tr>
<td colspan=4>This cell has colspan=4</td>
</tr><tr class="second">
<td><a>Writing-mode:vertical-rl inside inline</a></td>
<td><a>Writing-mode:vertical-rl inside inline</a></td>
<td><a>Writing-mode:vertical-rl inside inline</a></td>
<td><a>Writing-mode:vertical-rl inside inline</a></td>
</tr></table>
在除 Safari 之外的所有浏览器中,这都会生成包含横向文本的适当大小的单元格。 Safari 要么折叠它们(如果容器是块状的),要么像水平的一样展开它们(如果容器是内联的)。
我已经提交了bug to Webkit,但在那之前,我想使用这种模式,所以我正在寻找一种方法来解决它,以保留大部分这种结构以及在垂直文本上方使用 colspan 的能力.实际用例更复杂,因此简单地在某处设置固定宽度并不是一个可行的解决方案。
我尝试将表格重新实现为 display: flex 并在行方向 flex 中嵌套列,但遇到了同样的错误,这一次在 Firefox 中也是如此。
【问题讨论】:
-
即使您的默认示例在 Chrome 和 Firefox 中看起来也不一样。
-
他们都正确渲染它。我对到处看起来都一样的东西不感兴趣。我有兴趣解决主要的、停止显示的渲染错误。
标签: css safari html-table webkit flexbox