我正在使用R Shiny Dashboard包来创建仪表板。我实际上想要一个固定的标题,当我向下滚动时它不会移动。在这个标题的右上方我想放一个图像。我的css文件名为" remaniement"并位于文件夹\ www
中第一个想法:我试图对每个元素的宽度进行参数化,例如将.skin-blue .main-header .navbar
的宽度设置为80%,将图片的宽度设置为20%但是当浏览器窗口大小发生变化时出现问题
我尝试将标题宽度设置为100%并将图像放在标题上方。我不知道为什么,即使我将z-index: 9999999;
放在我的css文件上,图像也总是在标题下。
对于上面的两个想法,我尝试使用功能dashboardBody()或dashboardHeader()编码的图片,但没有成功。
这是我的ui.R代码:
library(shiny)
library(shinydashboard)
header<-dashboardHeader(title = "Titre",disable = FALSE)
sidebar<-dashboardSidebar(sidebarMenu(menuItem("Home", tabName = "home", icon = icon("home"))))
body<-dashboardBody(
tags$link(rel = "stylesheet", href = "remaniement.css"),
tags$div(class="windows",tags$a(href='https://www.microsoft.com/en-gb/windows',target="_blank",tags$img(src='windows.png',width = 80))))
ui<-dashboardPage(skin = "blue",header,sidebar,body)
我的服务器.R代码:
server <- function(input, output,session) {}
和我的css代码:
/*image that a want to put in the header*/
.windows{
position: fixed;
right: 0;
top: 0;
white-space: nowrap;
overflow: visible;
background-color: #FFFFFF;
z-index:9999999;}
/* logo */
.skin-blue .main-header .logo {
background-color: #3c8dbc;
color: #FFF;
position: fixed;
width: 230px;
white-space: nowrap;
overflow: visible;}
/* navbar (rest of the header) */
.skin-blue .main-header .navbar {
width:80%;
position: fixed;
white-space: nowrap;
overflow: visible;
background: linear-gradient(90deg, #3c8dbc, #ffffff);
z-index:850;}
.skin-blue .main-header .navbar .sidebar-toggle {
position: fixed;
white-space: nowrap;
overflow: visible;}
.sidebar {
color: #FFF;
position: fixed;
width: 220px;
white-space: nowrap;
overflow: visible;}
.content-wrapper,
.right-side,
.main-footer{
-webkit-transition: -webkit-transform 0.3s ease-in-out, margin 0.3s ease-in-out;
-moz-transition: -moz-transform 0.3s ease-in-out, margin 0.3s ease-in-out;
-o-transition: -o-transform 0.3s ease-in-out, margin 0.3s ease-in-out;
transition: transform 0.3s ease-in-out, margin 0.3s ease-in-out;
margin-left: 230px;
z-index: 820;
top:50px;
position: relative;
white-space: nowrap;
overflow: visible;
background-color: #ffffff;}
.main-sidebar,
.left-side {
position: absolute;
top: 0;
left: 0;
padding-top: 50px;
min-height: 100%;
width: 230px;
z-index: 810;
-webkit-transition: -webkit-transform 0.3s ease-in-out, width 0.3s ease-in-out;
-moz-transition: -moz-transform 0.3s ease-in-out, width 0.3s ease-in-out;
-o-transition: -o-transform 0.3s ease-in-out, width 0.3s ease-in-out;
transition: transform 0.3s ease-in-out, width 0.3s ease-in-out;}
我真的迷失了,已经超过3天了,我被困在了......
提前谢谢!
答案 0 :(得分:0)
(已编辑)
事情“很简单”(但是发现它有些苛刻)。
首先,我需要像这样将images目录设置为“资源路径”:
addResourcePath("<name for my resource path>", "<actual path>"
请尽可能使用system.file()
定义实际路径,这是一种干净的方法。您还可以使用resourcePath()
然后,您可以在用户界面中使用tags$img()
来调用新注册的文件夹:
tags$img("<actual path>/local-path-to-your-image", ...) # ... can contain HTML parameter such as width and height
您将完成!