如何在R Shiny中使用Font Awesome Sharp风格图标?
在R Shiny中使用Font Awesome Sharp风格图标
要解决这个问题,核心是两个点:加载支持Sharp风格的Font Awesome版本,以及正确传递图标类名参数,具体方案如下:
方案1:改进icon()函数的用法
Shiny默认的icon()函数需要拆分图标名和额外类名,不能把所有类都塞到name参数里。同时Sharp是Font Awesome 6的特性,需要指定加载v6版本:
library(shiny) ui <- fluidPage( # 加载支持Sharp风格的Font Awesome 6版本 fontAwesomeDependency(version = "6.4.0"), # 正确调用图标:name是图标名,class添加sharp和solid类 actionButton("test", "Test", icon = icon("user", class = "fa-sharp fa-solid")) ) server <- function(input, output, session) {} shinyApp(ui, server)
方案2:手动构建图标HTML元素
如果觉得icon()函数的参数限制麻烦,可以直接用Shiny的标签函数手动创建图标,灵活度更高:
library(shiny) ui <- fluidPage( fontAwesomeDependency(version = "6.4.0"), # 直接用tags$i创建带完整类名的图标 actionButton("test", "Test", icon = tags$i(class = "fa-sharp fa-solid fa-user")) ) server <- function(input, output, session) {} shinyApp(ui, server)
原代码失效原因
- 你把
fa-sharp fa-solid fa-user全部传给icon()的name参数,函数只会将这段字符串当作图标名处理,不会解析为CSS类。 - Shiny默认集成的Font Awesome版本不支持Sharp风格,必须手动指定加载v6版本。
内容的提问来源于stack exchange,提问作者Jeff Bezos
相关产品推荐
相关产品推荐

