R:有光泽:增加`textInput`创建的文本输入控件的宽度

时间:2014-01-10 12:05:41

标签: r shiny

我几乎完成了一个Web应用程序,它允许用户使用textInput创建的文本输入控件对Web应用程序下的数据框进行子集化。请参阅我的related question以将字符串解析为表达式。

如果我可以增加此文本输入控件的宽度,那将更加用户友好。有人知道怎么做吗?

欢呼任何帮助。

2 个答案:

答案 0 :(得分:7)

如果您的textInput如下:

textInput(inputId="someid", label="somelable", value = 0.0)
tags$head(tags$style(type="text/css", "#someid {width: 150px}")),

你可以添加一些CSS。

tags$head(
    tags$link(rel = 'stylesheet', type = 'text/css', href = 'styles.css'),
)

并在styles.css

中添加适当的条目

答案 1 :(得分:0)

我为这样的事情创建了一个custom.css文件。

custom.css文件放在app主目录的www目录中。

将此行添加到custom.css文件中,以使所有选择的输入符合其容器的整个宽度。

.shiny-input-container:not(.shiny-input-container-inline) {
  width: 100%;
}

这对于包含长名称或多个选项的文本输入或下拉列表非常有用。它还使应用程序看起来更加完整。我将所有过滤器放在页面顶部,如果我不强制输入填充容器,则会有很多空白区域。

然后,您可以通过设置包含输入容器的列的宽度,在ui.R文件中轻松控制输入大小。像这样......

fluidRow(
  column(4, offset = 0, align = 'center', uiOutput(ns("select_category_type"))),
  column(4, offset = 0, align = 'center', uiOutput(ns("select_category_group"))),
  column(4, offset = 0, align = 'center', uiOutput(ns("select_category")))
),
fluidRow(
  column(6, offset = 3, align = 'center', uiOutput(ns("select_year")))
)

```

您还需要在ui.R文件中加载custom.css文件。如果使用闪亮的仪表板,则可以将此作为dashboardBody函数中的第一个语句;如果使用标准ui,则可以在fluidPage函数中执行此操作。

dashboardBody(
  includeCSS("www/custom.css"),
  tabItems(...
相关问题