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

R Shiny:如何让prettyCheckboxGroup的长选项文本自动换行?

解决Shiny中prettyCheckboxGroup长文本换行问题

prettyCheckboxGroup默认通过CSS强制选项文本不换行,这就是长文本超出侧边栏范围的原因。你可以通过自定义CSS覆盖这个默认样式,实现文本自动换行:

具体实现

在UI中添加自定义CSS样式,针对目标组件的选项文本设置允许换行:

library(shiny)
library(shinyWidgets)

ui <- fluidPage(
  # 自定义CSS覆盖默认样式
  tags$style(HTML("
    #boxpick .pretty .state label {
      white-space: normal;
      word-wrap: break-word;
    }
  ")),
  sidebarPanel(
    width = 2,
    uiOutput('boxpick')
  )
)

server<- function(input, output) {
  output$boxpick <- renderUI(
    prettyCheckboxGroup('boxpick', 'Pick an item:',
                       choices= c('really really long', 
                                  'really really really really long',
                                  'really really really really really really really really long')
                       )
  )
}

shinyApp(ui,server)

样式说明

  • white-space: normal:取消组件默认的"不换行"设置,让文本随容器宽度自动换行
  • word-wrap: break-word:确保超长单词也能被拆分换行,避免单个单词撑破侧边栏容器

设置完成后,选项文本会根据侧边栏宽度自动换行,和checkboxGroupInput的默认表现一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 18:12:38