2017-08-24 139 views
1

我在R闪亮的应用程序,在那里我已经建造了一个文件输入功能,像这样的工作:更改R Shiny fileInput中标签文本的大小/间距?

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) 
    } 

现在我想改变这里提供的label的字体设置(下面的图片,它是“文件中”)。字体似乎对于更长的标签来说太大了,它有时看起来很笨重。

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

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

docs简单地说,这是label

用于控制显示标签,或为NULL没有标签。

R Shiny Screenshot

已经有otherquestions对SO关于一般闪亮的文字渲染,但我不知道这些标签实现类似功能,我没有web脚本的知识,所以任何帮助是多少赞赏。

回答

2

This article非常整齐地总结了你可以用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;" 
) 

如果你只想风格元素的一个组成部分,因为你所描述,那么你需要使用开发者工具在浏览器中找出你就可以有针对性的HTML您造型。对于fileInput标签,我们的目标是实际使用<label> HTML标签。如果您宁愿避免使用样式表,那么您可以通过Shiny文章中介绍的第三种方法(通过tags函数)添加必要的CSS。此

tags$head(
    tags$style(HTML(
    "label { font-size:80%; font-family:Times New Roman; margin-bottom: 
    20px; }" 
)) 
) 
+1

这个答案岩石坚硬,感谢:您可以将下面的代码(右在fluidPage顶部)添加到您的UI更改字体,并添加标签下面填充。 – patrick