从 numericInput() R Shiny 中删除 up/down 箭头

Removing up/down arrows from numericInput() R Shiny

我有兴趣删除或隐藏当您使用 numericInput() with shiny 时出现的侧边箭头。我将附上我所指的箭头图像,以便每个人都能理解我想要的部分 remove/hide。阅读文档后,似乎没有删除这些箭头的选项。所以我想知道是否有办法使用 CSS 来删除这些箭头。我确实看到另一个 post 问了类似的问题 question。但是,我只对使用 numericInput().

感兴趣

我将附上一些示例代码。该代码基本上什么都不做,但它会为您提供一个可重现的示例。

library(shiny)
server <- function(input, output){
}

ui <- fluidPage(


  titlePanel("Test1"),
  
  sidebarLayout(
    
    sidebarPanel(
      
      numericInput("n", 
                   label = h4("Test2"),
                   min=1,
                   value = 20),
      
      numericInput("x", 
                   label = h4("Test3"),
                   min=0,
                   value = 10),
      
      h4(textOutput("pvalue"))
    ),
    
    mainPanel(
      plotOutput("nullplot")
    )
  )
)

shinyApp(ui = ui, server = server)
runApp()

警告:我在网上看到侧箭头不会出现在所有网络浏览器和某些版本的 RStudio 上。参见 here

似乎没有办法从 numericInput() 中删除箭头,但是,有办法隐藏它们。需要明确的是,移除和隐藏是有区别的。从理论上讲,删除箭头应该完全删除箭头的代码。隐藏箭头将简单地掩盖侧箭头的代码,但是,代码仍然存在,但除非用户检查页面,否则不会被用户看到。

下面是 CSS,可用于隐藏 numericInput() 的侧向箭头。

tags$head(
  tags$style(HTML("
        input[type=number] {
              -moz-appearance:textfield;
        }
        input[type=number]::{
              -moz-appearance:textfield;
        }
        input[type=number]::-webkit-outer-spin-button,
        input[type=number]::-webkit-inner-spin-button {
              -webkit-appearance: none;
              margin: 0;
        }
    "))
)

如果您想将此代码应用于问题中给出的示例,那么您可以这样做

library(shiny)
server <- function(input, output){
}
ui <- fluidPage(
  titlePanel("Test1"),
  sidebarLayout(
    sidebarPanel( 
      tags$head(
        tags$style(HTML("
        input[type=number] {
              -moz-appearance:textfield;
        }
        input[type=number]::{
              -moz-appearance:textfield;
        }
        input[type=number]::-webkit-outer-spin-button,
        input[type=number]::-webkit-inner-spin-button {
              -webkit-appearance: none;
              margin: 0;
        }
    "))
      ),
      numericInput("n", 
                   label = h4("Test2"),
                   min=1,
                   value = 20),
      numericInput("x", 
                   label = h4("Test3"),
                   min=0,
                   value = 10),
      h4(textOutput("pvalue"))
    ),
    mainPanel(
      plotOutput("nullplot")
    )
  )
)

shinyApp(ui = ui, server = server)
runApp()

总的来说,这只是一种解决方法,因为没有删除侧边箭头的选项。