You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改shinyFeedback::feedbackWarning的字体大小与图标占位空间?

解决方案

当然可以通过自定义CSS解决这两个问题,具体调整如下:

1. 移除图标占位空间

当设置icon=NULL时,shinyFeedback仍会渲染一个空的图标容器,我们可以通过CSS隐藏这个容器以消除占位:

/* 隐藏警告反馈的空图标容器 */
.shiny-feedback-container .feedback-warning .fa-icon-container {
  display: none;
}

2. 缩小警告消息字体

直接针对反馈文本的类设置字体大小:

/* 缩小警告提示文本的字体 */
.shiny-feedback-container .feedback-warning .feedback-text {
  font-size: 0.8em; /* 可根据需求调整数值 */
}

修改后的完整代码

将上述CSS通过tags$head(tags$style())嵌入到UI中即可:

library(shiny)
library(shinyFeedback)

ui<-shinyUI(fluidPage(
  shinyFeedback::useShinyFeedback(),
  # 自定义CSS样式
  tags$head(tags$style(HTML("
    /* 隐藏警告反馈的空图标容器 */
    .shiny-feedback-container .feedback-warning .fa-icon-container {
      display: none;
    }
    /* 缩小警告提示文本的字体 */
    .shiny-feedback-container .feedback-warning .feedback-text {
      font-size: 0.8em;
    }
  "))),
  textInput("time", "Timestamp", 
            value = '2024/04/01 00:00:00', 
            width = '160px', placeholder = NULL)
))

server<- function(input, output, session) {
  
  observe(shinyFeedback::feedbackWarning("time", 
                                         !(grepl('[0-9]{4}/[0-9]{2}/[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}', input$time)),
                                         "Please use a valid timeformat", 
                                         icon=NULL))
}

shinyApp(ui,server)

说明

  • 隐藏图标容器后,输入框的内容就不会被占位空间截断;
  • 字体大小可根据实际需求调整font-size的数值,比如12px或0.75em都适用。

内容的提问来源于stack exchange,提问作者Anke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 19:52:11