闪亮:标签位置,textInput

时间:2017-06-27 15:20:57

标签: css r shiny styles

让我们假设我有一个非常简单的应用程序,只有8个输入分组在2个面板中(4个输入| 4个输入 - 见下图)并基于这些,我绘制了一个小图(容易腻)。

The panel I want to make

我面临的问题是,我希望仅为第一个面板和textInput框左侧设置标签。

e.g。 (请原谅我的草率图像编辑!)

enter image description here

有什么建议吗?

我的MWE图1输出:

library(shiny)
ui<-shinyUI(fluidPage(
  wellPanel(
    tags$style(type="text/css", '#leftPanel { max-width:300px; float:left;}'),
    id = "leftPanel",
    textInput("Population1000", 'Population 1000',"15"),
    textInput("Area1000",'Area  1000', "20"),
    textInput("GNI1000", 'GNI 1000', "2314"),
    textInput("GDP1000", "GDP 1000", "1000")
  ),
  wellPanel(
    tags$style(type="text/css", '#RightPanel { max-width:300px; float:left;}'),
    id = "RightPanel",
    textInput("Population2000", 'Population 2000',"15"),
    textInput("Area2000",'Area 2000', "20"),
    textInput("GNI2000", 'GNI 2000', "2314"),
    textInput("GDP2000", "GDP 2000", "1000")
  )
)
)
server<-shinyServer(function(input, output) {NULL})
shinyApp(ui,server)

1 个答案:

答案 0 :(得分:5)

您好,您可以尝试使用Bootstrap的horizontal form,查看下面的代码,它创建3列宽度为4的列。您可以在class = "col-sm-4 control-label"中为标签更改宽度,在width = 4中更改输入的宽度。

library("shiny")
ui <- fluidPage(

  fluidRow(
    column(

      width = 4,

      tags$form(
        class="form-horizontal",

        tags$div(
          class="form-group",
          tags$label(class = "col-sm-4 control-label", `for` = "Population1000", br(), "Population"),
          column(width = 4, textInput(inputId = "Population1000", label = "Year 1000", value = "15")),
          column(width = 4, textInput(inputId = "Population2000", label = "Year 2000", value = "15"))
        ),

        tags$div(
          class="form-group",
          tags$label(class = "col-sm-4 control-label", `for` = "Area1000", "Area"),
          column(width = 4, textInput(inputId = "Area1000", label = NULL, value = "20")),
          column(width = 4, textInput(inputId = "Area2000", label = NULL, value = "20"))
        ),

        "..."

      )
    )
  )

)

server <- function(input, output) {

}

shinyApp(ui = ui, server = server)

结果:

enter image description here

PS:您不应该使用相同的ID进行输入。