R闪亮的navbarPage右对齐选项卡

Mar*_*ark 2 r shiny

默认情况下,使用navbarPage()in Shiny将创建一个“静态顶部”引导页面(例如)。如果我正在为网页编写html,则可以添加一个<ul>元素,该元素带有一类的nav navbar-nav navbar-right,这些元素navbar-right会将制表符/菜单移动到导航栏的右侧。

似乎没有一种方法可以直接通过框架强制这种行为-是否有一种聪明的已知方法可以完成此任务?

K. *_*hde 5

取决于您的期望值有多低。

您可以将css添加到UI中,以将选项卡集或标题对齐到右侧。码:

app <- shinyApp(
  ui = shinyUI(
    fluidPage(
      tags$head(
        tags$style(HTML("
          .navbar .navbar-nav {float: right}
          .navbar .navbar-header {float: right}
        "))
      ),
      navbarPage("header",
        tabPanel("tab1"),
        tabPanel("tab2")
      )
    )
  ),

  server = function(input, output, session){}

)

runApp(app)
Run Code Online (Sandbox Code Playgroud)

编辑:header参数navbarPage也接受常规div容器。(例如,用徽标代替纯文本。)可以利用该漏洞将整个UI元素(例如按钮)填充到该header位置。然后,当然可以将其浮动到右侧,而将选项卡对齐到左侧。


Mar*_*ark 5

K. Rohde 提供的解决方案,尤其是编辑,可以使其几乎保持纯正的 Shiny。我发现了insertAdjacentHTMLjavascript 函数并用它来创建一个右侧的文本标签。我想应该可以制作 Shiny 知道并可以使用的标签。就我而言,我想将版本信息放在右侧的导航栏上。因此,添加disabled类是为了避免混淆。

library(shiny)
app <- shinyApp(
  ui = shinyUI(
    fluidPage(
      navbarPage("Site Title",
        tabPanel("v0.1"),
        tabPanel("tab1"),
        tabPanel("tab2")
      ),
      HTML("<script>var parent = document.getElementsByClassName('navbar-nav');
parent[0].insertAdjacentHTML( 'afterend', '<ul class=\"nav navbar-nav navbar-right\"><li class=\"disabled\"><a href=\"#\">v0.1</a></li></ul>' );</script>")
    )
  ),

  server = function(input, output, session){}

)

runApp(app)
Run Code Online (Sandbox Code Playgroud)


Ban*_*you 5

您可以使用shinyjs包

library(shiny)
ui <- shinyUI(

    navbarPage(
        'Test',
        id = 'menus',
        tabPanel('Test',
                 shinyjs::useShinyjs()),
        tabPanel("Summary"),
        tabPanel("Table", value = 'table')
    ))

server <- function(input, output, session) {
    shinyjs::addClass(id = "menus", class = "navbar-right")
}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)