微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Shiny R Selectize Input 小部件大小以输入为目标

如何解决Shiny R Selectize Input 小部件大小以输入为目标

我的 Shiny 应用中有多个 selectizeInput。他们中的大多数不应该充满变量/元素,但其中之一是。问题是盒子中的变量/元素越多,这个越大,显示效果也不好。我找到了操作输入小部件的高度、字体、宽度等的解决方案:

    library(shiny)

    ui <- fluidPage(
      fluidRow(

        selectInput("speed",label=NULL,choices = list("1" = 1,"2" = 2),selected = 1),tags$head(tags$style(HTML(".selectize-input {height: 100px; width: 500px; font-size: 100px;}")))
      )

)
server <- function(input,output){}
shinyApp(ui,server)

这有效。但是这个解决方案会影响我在我的应用程序中拥有的所有 selectizeInput,我只对一个 selectizeInput 感兴趣。有没有办法做到这一点?

解决方法

您可以使用一些高级 CSS 来选择 .selectize-input 框。因此,在 selectInput 结构中,具有实际 id 的元素被分配给 select 标签,您想要的框是 select 标签之后的以下标签的第一个子元素。我们可以使用 + 选择以下标签,并使用 > 选择包含以下标签的 .selectize-input 类的第一个子项。

library(shiny)

ui <- fluidPage(
    tags$head(tags$style(HTML("#speed + div > .selectize-input {height: 100px; width: 500px; font-size: 100px;}"))),fluidRow(
        selectInput("speed",label=NULL,choices = list("1" = 1,"2" = 2),selected = 1),selectInput("speed2",selected = 1)
    )
)
server <- function(input,output){}
shinyApp(ui,server)

#ID + div > .selectize-input 是您要申请的。

尝试运行我的示例,我创建了两个 selectInput,只有第一个具有 CSS 样式。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。