CSS 样式在 R 中显示 > 而不是 > 闪亮

问题描述 投票:0回答:2

我正在尝试在

shiny
中添加样式,但是当我检查
Chrome
时,它显示为
#input-label + div > div {width: 150px}
>
实际上应该是
>
。这是什么原因造成的?

library(shiny)

ui <- fluidPage(
    tags$style("#input-label + div > div {width: 150px;}"),
  numericInputIcon("input", "input", 42, icon = "Num")
)

server <- function(input, output, session) {
  
}

shinyApp(ui, server)
css r shiny
2个回答
0
投票

问题是您传递的字符串被转义,即

>
被 HTM 实体
&gt;
替换。为了防止这种情况,您必须将
HTML()
包裹起来,这样

tag()
函数将知道不要对其执行 HTML 转义。 (参见
?htmltools::HTML
)。

文档中也提到了这一点(请参阅

?tags
),根据其中
...
可能包括

HTML()

library(shiny)
library(shinyWidgets)

ui <- fluidPage(
  tags$style(HTML("#input-label + div > div {width: 150px;}")),
  numericInputIcon("input", "input", 42, icon = "Num")
)

server <- function(input, output, session) {

}

shinyApp(ui, server)
#> 
#> Listening on http://127.0.0.1:6399


0
投票

发生这种情况是因为 chrome 将该行读取为 html

试试这个:

ui <- fluidPage(
    tags$style(HTML("
        #input + div > div {width: 150px;}
    ")),
    numericInputIcon("input", "Input Label", 42, icon = "Num")
)
© www.soinside.com 2019 - 2024. All rights reserved.