【问题标题】:How to delete margin between textInput and error massage如何删除文本输入和错误消息之间的边距
【发布时间】:2020-03-25 11:32:12
【问题描述】:

我尝试创建带有字段验证的应用程序,但边距有问题。

问题是我无法缩小textInput(电子邮件)和uiOutput(错误消息)之间的边距。我已经尝试过更改错误消息的边距和填充,但它没有帮助。

我需要在这个简化版本中获得什么:

  1. 它们之间有两个具有正常距离 (15 px) 的字段。当没有错误信息时,我需要保持相同的距离。

  1. 当我点击注册按钮时,它会进行验证,如果用户名为空,则会显示错误:

如果我在浏览器中检查代码,它会显示 margin-bottom 15 px:

代码是:

library(shiny)
library(shinyalert)

ui <- fluidPage(
  titlePanel("Error test"),
  tags$head(tags$style(HTML("
        /* errors */
        .shiny-output-error-validation {
        color: #ff0000;
        font-size: 13px;
        margin-bottom: 7px;
        margin-top: 0px;
        padding-top: 0px;
        font-weight: bold
        }
      "))),

  mainPanel(
    textInput("user_name", "Username (Email):", ),
    uiOutput("error_email"),
    textInput("bla", "Test:"),
        actionButton("register_button", "Register")
  )
)

server <- function(input, output) {
  observeEvent(input$register_button, {
    if (input$user_name != "") {
      shinyalert("Your registration was successfull")
    } else {
      output$error_email <- renderUI({

          validate(
          need(
            input$user_name != "",
            paste("Email Address: Please Input a valid E-mail address")
          )
        )
      })
    }
  })
}

shinyApp(ui = ui, server = server)

【问题讨论】:

  • 尝试使用body,html {border:0;margin:0;,同时分享html代码。

标签: html css r shiny


【解决方案1】:

在错误消息的元素上应用负边距顶部可能是解决此问题的正确方法。请检查下面的代码。

如果错误信息元素中的类是'errormessage',下面是css代码。

.errormessage {
margin-top: -15px;
}

【讨论】:

  • 我也是这么想的。这无疑应该有效。