R,Shiny:内联selectInput

时间:2015-12-10 20:31:06

标签: css r widget position shiny

1)我们如何将selectInput放在另一个旁边?我试过了:

# style.css
.general {
display: inline-block;
margin-left: auto;
margin-right: auto;
height: auto;
width : auto ;
white-space: nowrap ;}

# ui.R
...
tags$div(class = "general", selectInput(...), selectInput(...))
...

但它不起作用。

2)我们如何在selectInput本身旁边放置selectInput的标签?我找到了这个主题Positioning Shiny widgets beside their headers 但这是专为应用的所有selectInput设计的。我没有设法将tags$style(...)中提供的代码仅用于我的应用中的一个selectInput,而不是全部。我们怎么能这样做?

感谢。

2 个答案:

答案 0 :(得分:2)

尝试使用一个流体行和多个列。由于总流体行宽= 12,您可以一个接一个地放置12列而不需要任何额外的css。例如:

fluidRow(
column(6, selectInput("S1", label = "S1")),
column(6, selectInput("S2", label = "S2"))
)

答案 1 :(得分:0)

我通过一个简单的例子来回答问题1):

# style.css
.divleft {
  float : left;
  width : 50%;
}

.clearl {
  clear: left;
}

# ui.R
library(shiny)

shinyUI(fluidPage(
  tagList(
    tags$head(
      tags$link(rel="stylesheet", type="text/css",href="style.css")
    )
  ),
    sidebarLayout(
      sidebarPanel(
        selectInput("s1", "Select 1", 1:10),
        tags$div(
          tags$div(class = "divleft", selectInput("s2", label = "Select 2", 1:5, width = validateCssUnit("70%"))),
          tags$div(class = "divleft", selectInput("s3", label = "Select 3", 1:5, width = validateCssUnit("70%")))
        ),
        tags$div(class = "clearl",
                selectInput("s4", "Select 4", 1:5)
                 )
        , width = 3),
      mainPanel(
        h3("Example")
      )
    )
  )
)

# server.R
shinyServer(function(input, output, session) { })