更改R Shiny fileInput中标签文本的大小/间距?

pat*_*ick 1 css r shiny

我正在开发一个R Shiny应用程序,我在其中构建了一个文件输入函数,如下所示:

  csvFileInput <- function(name_space, file_name="file", label = "Input file") {
    ns <- NS(name_space)
    # doc here: https://shiny.rstudio.com/reference/shiny/latest/fileInput.html
    fileInput(ns(file_name), label)
  }
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试更改label此处提供的字体设置(在下图中,它是"文件输入").对于较长的标签,字体看起来太大了,有时看起来很笨重.

  • 有没有办法改变这些标签的字体大小?

  • 有没有办法添加标签或换行符等空格?

文档简单地说,这label

显示控件的标签,或者没有标签的NULL.

R Shiny截图

关于Shiny文本呈现的SO一般还有其他 问题,但我不确定这些标签是否实现类似,我不了解Web脚本,所以非常感谢任何帮助.

cma*_*her 5

本文非常巧妙地总结了使用CSS设置Shiny样式的三种方法.如果您最终设置了多个元素的样式,通常最好通过样式表(即实际的.css文件)添加CSS,这在Shiny中需要放在名为"www"的子目录中,而子目录又是在您的app目录中.

如果您只设置一个元素("元素"表示函数的UI输出),并且您希望样式应用于整个元素,则可以将该元素包装在div标记中并使用如下style属性:

div(
   fileInput("file1", "Choose CSV File",
               accept = c(
               "text/csv",
               "text/comma-separated-values,text/plain",
               ".csv")
   ), style="font-size:80%; font-family:Arial;"
)
Run Code Online (Sandbox Code Playgroud)

如果您只想设置元素的一个组件,如您所述,那么您需要使用浏览器中的开发人员工具来确定可以为您的样式定位的HTML.对于fileInput标签,实际的<label>HTML标记是我们的目标.如果你宁愿避免使用样式表,那么你可以通过Shiny文章中描述的第三种方法添加必要的CSS,这是通过tags函数.您可以将以下代码添加到UI(位于顶部fluidPage)以更改字体并在标签下方添加填充:

tags$head(
  tags$style(HTML(
    "label { font-size:80%; font-family:Times New Roman; margin-bottom: 
    20px; }"
  ))
)
Run Code Online (Sandbox Code Playgroud)