You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flexdashboard附加标题格式化问题解决方案咨询

问题原因

第二组标题渲染异常、留白过多,是因为flexdashboard中由---分隔的独立行必须包含至少一个###开头的组件标题,否则框架会自动生成默认容器,既不会生效你设置的data-height参数,还会额外添加内边距产生多余空白。第一个标题显示正常,是因为它位于Tab大标题和第一行内容分隔线之间,不属于独立行组件,不受行布局规则约束。


可行方案

方案1(推荐,和现有正常标题逻辑完全一致)

不要给分组标题单独套独立行,直接把居中标题放在对应内容块的行分隔线上方,和第一个标题的位置逻辑保持一致。如果需要控制标题和上下内容的间距,直接给h3标签加内联样式调整margin即可,不需要通过data-height控制。
核心修正片段:

<!-- 第一组内容保持原有写法不变 -->
<h3 style="text-align:center; margin: 12px 0;"> The First Plot and table</h3>

Row
-------------------------------------
### Plot 1
<!-- 原有绘图、表格代码不变 -->

<!-- 第二组标题去掉单独包裹的Row,直接放在下一个Row分隔线上方 -->
<h3 style="text-align:center; margin: 12px 0;"> The Second Plot and table</h3>
Row
-------------------------------------
### Plot 2
<!-- 原有绘图、表格代码不变 -->

通过margin:12px 0可以自由调整标题上下留白大小,数值按需修改即可。

方案2(保留独立行设置)

如果确实需要把标题放在单独行里控制高度,只需要给该行加一个空的三级组件标题,让flexdashboard能正确识别行结构,就可以正常应用data-height参数:

Row{data-height = 60}
-------------------------------------
### 
<h3><center> The Second Plot and table</center></h3>

Row
-------------------------------------
### Plot 2
<!-- 原有绘图、表格代码不变 -->

注意data-height不要设置过小(比如之前的50),h3字体高度加必要边距一般需要60px左右才不会出现内容截断。


完整修正后可运行代码

---
title: "REPEX flexdashboard"
output: 
  flexdashboard::flex_dashboard:
    vertical_layout: scroll
    orientation: rows
---

```{r, echo = FALSE, message = FALSE, warning = FALSE}
library(tidyverse)
library(plotly)
library(igraph)
library(ITNr)
library(readxl)
library(flexdashboard)
library(knitr)
library(kableExtra)
library(grid)
library(gridExtra)
Introduction

Some text to place hold

First tab

The First Plot and table

Row

Plot 1

data <- data.frame(x = sample(0:10, 100, replace = TRUE),
                   y = sample(0:10, 100, replace = TRUE))

plot(data$x, data$y)

Table 1

data%>%
  slice_max(x, n = 10)%>%
  kable()%>%
          kable_styling(bootstrap = "bordered")

The Second Plot and table

Row ------------------------------------- ### Plot 2 ```{r} data <- data.frame(x = sample(0:10, 100, replace = TRUE), y = sample(0:10, 100, replace = TRUE))

plot(data$x, data$y)

### Table 2
```{r}
data%>%
  slice_max(x, n = 10)%>%
  kable()%>%
          kable_styling(bootstrap = "bordered")
内容的提问来源于stack exchange,提问作者Araph7
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 04:27:18