提问人:Curtis 提问时间:11/17/2023 更新时间:11/19/2023 访问量:48
更改 bslib 卡角半径
Change bslib Card Corner Radius
问:
我希望使 bslib 卡的一角更圆润。这里有 3 张卡片,我使用 class 参数来更改卡片的元素,前两张是边框半径,最后一张是背景颜色。
library(shiny)
library(bslib)
# UI logic
ui <- page_fluid(
card(
max_height = 200,
card_header("Card 1"),
card_body("STUFF"),
class = "card-border-radius: 50rem;"
),
card(
max_height = 200,
card_header("Card 2"),
card_body("STUFF"),
class = "border-radius: 20%;"
),
card(
max_height = 200,
card_header("Card 3"),
card_body("STUFF"),
class = "bg-dark"
)
)
# Server logic
server <- function(input, output, session) {
}
shinyApp(ui, server)
答:
4赞
Kat
11/17/2023
#1
更新
我没有注意到卡头中的颜色延伸到卡边框之外。为了解决这个问题,我添加了另一个类,以便它强制标头继承自其父级。
这个新课程遵循与我原始答案相同的解释。
library(shiny)
library(bslib)
# UI logic
ui <- page_fluid(
tags$style(HTML(".card2 {border-radius: 2rem;}
.card2h { /* force inheritance */
border-top-left-radius: inherit !important;
border-top-right-radius: inherit !important;
}")), # creating class style
card(
max_height = 200,
card_header("Card 1"),
card_body("STUFF")
),
card(
max_height = 200,
card_header("Card 2", class = "card2h"),
card_body("STUFF"),
class = "card2" # <<<----- applying the new class
),
card(
max_height = 200,
card_header("Card 3"),
card_body("STUFF"),
class = "bg-dark"
)
)
# Server logic
server <- function(input, output, session) {}
shinyApp(ui, server)
原文是这样写的
您可以使用的一种方法是 和 添加基于类的样式。tags$style(HTML("
在解释中,它表示这是 CSS 的位置,但只有特定的预编程文本连接到在后台运行的类标签。因此,您可以研究您要查找的内容是否是预先编写的众多类之一,或者您可以创建自己的类。bslib::card
class
bslib
以下示例说明了如何创建和应用自己的类样式。
library(shiny)
library(bslib)
# UI logic
ui <- page_fluid(
tags$style(HTML(".card2 {border-radius: 2rem;}")), # creating class style
card(
max_height = 200,
card_header("Card 1"),
card_body("STUFF")
),
card(
max_height = 200,
card_header("Card 2"),
card_body("STUFF"),
class = "card2" # <<<----- applying the new class
),
card(
max_height = 200,
card_header("Card 3"),
card_body("STUFF"),
class = "bg-dark"
)
)
# Server logic
server <- function(input, output, session) {}
shinyApp(ui, server)
如果您有任何问题或遇到任何问题,请告诉我。
评论
0赞
Curtis
11/18/2023
太棒了 - 谢谢!看起来必须单独定义标头,因为有一个灰色部分仍然具有旧的半径。将此 card2 传递给标头类似乎不起作用。使用 inspect 查看卡片和标题的 HTML,看起来更改起来可能并不简单。
0赞
Kat
11/19/2023
直到你指出来,我才注意到那里的浅灰色。我也将添加一个更新来解决这个问题。
0赞
Curtis
12/1/2023
一个真正很棒的答案,谢谢!
评论