【问题标题】:How have a image in the center of the dashboard header in Shinydashboard R?Shinydashboard R 的仪表板标题中心如何有图像?
【发布时间】:2022-01-14 05:58:01
【问题描述】:

我有以下代码可以制作一个简单的闪亮应用程序。

```
library(shinydashboard)
library(shiny)
ui <- dashboardPage(
  dashboardHeader(title = tags$img(src='https://cdn.vox-cdn.com/thumbor/Ous3VQj1sn4tvb3H13rIu8eGoZs=/0x0:2012x1341/1400x788/filters:focal(0x0:2012x1341):format(jpeg)/cdn.vox-cdn.com/uploads/chorus_image/image/47070706/google2.0.0.jpg', height = '60', width ='100')),
  dashboardSidebar(
    sidebarMenuOutput("menu")
  ),
  dashboardBody()
)

server <- function(input, output) {
  output$menu <- renderMenu({
    sidebarMenu(
      menuItem("Overview", icon = icon("tachometer"))
      
    )
  })
}
shinyApp(ui, server)
```

图像输出在右侧菜单的顶部,但我的目标是让图像更多地位于仪表板的中间。我知道菜单会稍微改变导航栏,但我想尽可能将其保持在中心位置。

但我想要的输出是这样的。我用油漆做了一个样品。是否仍然可以保留一些文本,或者是否可以发布参考资料,以便我可以了解有关仪表板标题功能的更多信息。

【问题讨论】:

  • 添加了代码,因为我不小心发布了问题而没有包含它。
  • This 会让你走到一半。

标签: r shiny shinydashboard


【解决方案1】:

给你

您无法使用shinydashboard 的函数将图像添加到右侧的标题部分,但是让我们通过在标题中注入样式和标签来享受最新的htmltools

library(shinydashboard)
library(shiny)
header_img <- tags$img(
    src='https://cdn.vox-cdn.com/thumbor/Ous3VQj1sn4tvb3H13rIu8eGoZs=/0x0:2012x1341/1400x788/filters:focal(0x0:2012x1341):format(jpeg)/cdn.vox-cdn.com/uploads/chorus_image/image/47070706/google2.0.0.jpg',
    style = 'height: 50px; width: 100px; position: absolute; left: 50%; transform: translateX(-50%);'
)
header <-  htmltools::tagQuery(dashboardHeader(title = ""))
header <- header$
    addAttrs(style = "position: relative")$ # add some styles to the header 
    find(".navbar.navbar-static-top")$ # find the header right side
    append(header_img)$ # inject our img
    allTags()

ui <- dashboardPage(
    header,
    dashboardSidebar(
        sidebarMenuOutput("menu")
    ),
    dashboardBody()
)

server <- function(input, output) {
    output$menu <- renderMenu({
        sidebarMenu(
            menuItem("Overview", icon = icon("tachometer"))
            
        )
    })
}
shinyApp(ui, server)

img 放置在右侧标题的中心,而不是整个标题长度的中心。如果你想调整到整个长度的中心,试着把img的translateX(-50%)改成你喜欢的数字。

【讨论】:

  • 如何在左侧添加图片,中间添加文字,右侧添加图片?
  • 使用append 将您的组件注入到标头中。更改 CSS leftright 使其左对齐或右对齐。或者您可以使用flex 布局,但使用flex 注入顺序很重要。如果您不熟悉这些 CSS 术语,可以在 Google 上搜索。
猜你喜欢
  • 2021-12-04
  • 2021-06-22
  • 2021-05-19
  • 2020-08-04
  • 2018-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-14
相关资源
最近更新 更多