在表格中,使用`frame`和`grid`块属性来控制边框。您可以结合这两个属性,为您的表格实现多种边框样式。
框架
表格周围的边框通过表格上的 frame
属性进行控制。frame
属性默认值为 all
(暗示值),它在表格的每一边绘制边框。这个默认值可以通过设置文档属性 table-frame
来改变。您可以通过将表格上的 frame 属性设置为 all
、ends
、sides
或 none
来覆盖默认值。
ends` 值在表格的顶部和底部绘制边框。
[frame=ends]
Unresolved directive in borders.adoc - include::example$row.adoc[tag=base-h]
Unresolved directive in borders.adoc - include::example$row.adoc[tag=base-h]
sides` 值会在表格的右侧和左侧绘制边框。
[frame=sides]
Unresolved directive in borders.adoc - include::example$row.adoc[tag=base-h]
Unresolved directive in borders.adoc - include::example$row.adoc[tag=base-h]
none`值会移除表格周围的边框。
[frame=none]
Unresolved directive in borders.adoc - include::example$row.adoc[tag=base-h]
Unresolved directive in borders.adoc - include::example$row.adoc[tag=base-h]
格网
在表格中,单元格之间的边界通过表格上的 grid
属性来控制。grid
属性默认的值是 all
(暗示的值),它会在所有单元格之间画上边界。这个默认值可以通过设置文档属性 table-grid
来改变。你可以通过将表格上的 grid
属性设置为 all
、rows
、cols
或 none
来覆盖默认值。
rows` 值在表格的行之间绘制边框。
[grid=rows]
Unresolved directive in borders.adoc - include::example$row.adoc[tag=base-h]
Unresolved directive in borders.adoc - include::example$row.adoc[tag=base-h]
cols` 值用于在列之间绘制边框。
[grid=cols]
Unresolved directive in borders.adoc - include::example$row.adoc[tag=base-h]
Unresolved directive in borders.adoc - include::example$row.adoc[tag=base-h]
none` 值会移除单元格之间的所有边框。
[grid=none]
Unresolved directive in borders.adoc - include::example$row.adoc[tag=base-h]
Unresolved directive in borders.adoc - include::example$row.adoc[tag=base-h]
与行和列跨度的互动
使用行和列跨度可能会干扰表格边框的放置。这是使用CSS样式HTML的一个限制。
当一个单元格扩展到其他行或列时,该单元格在它扩展到的行或列的HTML中并不会被表示。如果单元格达到了表格的边界,这将会成为一个问题。CSS选择器只匹配单元格开始的位置,因此无法检测它是否触及了表格的边界。因此,它不能像对待1x1单元格(即,被限制在单一行和列中的单元格)那样添加或移除边界。
由于行和列跨度的干扰,并不总是会影响边界的放置。当表格有跨行或跨列延伸到表格边界时,只要框架和网格一致,边界总是会正确工作。在这个上下文中,一致意味着框架和网格都在为相同的边缘贡献边界。
这些是框架和网格一致的场景:
-
边框=全部, 网格=全部
-
框架=全部, 网格=无
-
框架=全部,网格=行
-
框架=全部,网格=列
-
frame=框架边界, grid=网格行
-
边框=侧边,网格=列
-
框架=无,网格=无
如果你在表格中使用行和列跨度,强烈建议你使用这些框架和网格组合之一。