如何为gt表格设置边框内边距,使边框贴合文字而非单元格?
如何在gt表格中实现边框与文字间保留内边距(边框贴合文字而非单元格)
核心解决方案
要让边框在单元格内留有空白、贴合文字而非单元格边缘,可通过gt包的两个关键参数实现:
方法1:用cell_borders的inset参数向内偏移边框
通过inset设置边框向内偏移的距离,让边框自动收缩到文字外围,避免紧贴单元格边缘:
require(gt) gt(exibble) %>% cols_align(align = "center", columns = c("char")) %>% tab_style( style = list( cell_borders( sides = "all", weight = px(3), inset = px(4) # 调整此值控制空白大小 ), cell_borders( sides = "all", weight = px(2), inset = px(4) ) ), locations = list( cells_body(columns = "char", rows = !is.na(char)), cells_body(columns = "datetime", rows = !is.na(datetime)) ) )
方法2:结合cell_padding调整内容与边框的间距
给目标单元格内容添加内边距,让文字和单元格边缘(边框位置)拉开距离,视觉上实现边框贴合文字的效果:
require(gt) gt(exibble) %>% cols_align(align = "center", columns = c("char")) %>% tab_style( style = list( cell_padding(padding = px(6), sides = "all"), # 控制文字到边框的空白 cell_borders(sides = "all", weight = px(3)), cell_borders(sides = "all", weight = px(2)) ), locations = list( cells_body(columns = "char", rows = !is.na(char)), cells_body(columns = "datetime", rows = !is.na(datetime)) ) )
说明
- 方法1直接修改边框位置,边框本身范围缩小,更贴合文字;
- 方法2通过调整内容间距实现,边框仍在单元格边缘,但文字与边框间有空白;
- 可根据需求调整
inset或padding的数值(如px(3)、px(5)),找到合适的空白大小。
内容的提问来源于stack exchange,提问作者BSHuniversity
相关产品推荐
相关产品推荐

