关于 r:Shiny tabsetPanel 取全宽

Shiny tabsetPanel take full width

是否有可能在 Shiny 中有一个 tabset 面板,其中 tabPanel 使用全宽?是否可以将 nav-fill 类添加到 tabsetPanel?还是不可能,因为 Shiny 是用 Bootstrap 3 构建的?

结果应该类似于 https://getbootstrap.com/docs/4.0/components/navs/#fill-and-justify

1
2
3
4
5
6
7
8
9
10
11
12
13
14
library(shiny)

ui <- fluidPage(
  tabsetPanel(
    # class ="navlist-fill",
    tabPanel("Tab 1"),
    tabPanel("Tab 2"),
    tabPanel("Tab 3")
  )
)

server <- function(input, output, session) {}

shinyApp(ui, server)

您发布的链接很有意义,并且可能是一种更好的方法。我们可以制作一个自定义小部件来执行此操作。目前,这里有一个使用一些简单 css 的解决方法。

这里的 CSS 选择器非常通用,您可能应该更具体,但这里有一个想法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
library(shiny)

ui <- fluidPage(
  tags$head(
    tags$style(HTML("
      .nav li {
        width: 32vw;
      }
   "))),
  tabsetPanel(id ="tab_panel",
    tabPanel("Tab 1"),
    tabPanel("Tab 2"),
    tabPanel("Tab 3")
  )
)

server <- function(input, output, session) {}

shinyApp(ui, server)