我想对我的leaflet地图进行一些样式更改。
是否可以通过htmlwidgets for R或LeafletR来包含以下内容:
- 样式元素或
- 自定义路径到css文件
请提供相关翻译。
谢谢。
我想对我的leaflet地图进行一些样式更改。
是否可以通过htmlwidgets for R或LeafletR来包含以下内容:
请提供相关翻译。
谢谢。
没有在您的问题中提供任何代码,回答是非常困难的。我会尝试回答。有两种方法可以将自定义CSS
添加到htmlwidget
中。我要提前告诫一下,您需要非常具体或使用!important
覆盖,因为已经有相当一部分CSS
被自动添加到leaflet
中了。此处
简单但不够健壮
htmlwidgets
可以与htmltools
包中的tags
结合使用。
library(leaflet)
library(htmltools)
# example from ?leaflet
m = leaflet() %>% addTiles()
# there are two approaches to the custom css problem
# 1. the easy but less robust way
browsable(
tagList(list(
tags$head(
# you'll need to be very specific
tags$style("p{font-size:200%;}")
# could also use url
#tags$link(href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css",rel="stylesheet")
),
m
))
)
使用htmlDependency更加强大
您还可以使用htmlDependency
来处理重复导致的冲突。
# 2. you can add dependencies to your leaflet map
# this mechanism will smartly handle duplicates
# but carries a little more overhead
str(m$dependencies) # should be null to start
#
m$dependencies <- list(
htmlDependency(
name = "font-awesome"
,version = "4.3.0"
# if local file use file instead of href below
# with an absolute path
,src = c(href="http://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css")
,stylesheet = "font-awesome.min.css"
)
)
m
library(leaflet)
library(htmltools)
# example from ?leaflet
m = leaflet(height = '100vh', width = '100vw') %>% addTiles()
# there are two approaches to the custom css problem
# 1. the easy but less robust way
browsable(
tagList(list(
tags$head(
# you'll need to be very specific
tags$style("p{font-size:200%;} body{margin: 0px;}")
# could also use url
#tags$link(href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css",rel="stylesheet")
),
m
))
)
htmltools
在这里肯定会帮到你,但我们还可以使用依赖项来探索其他选项。 - timelyportfoliormarkdown
? - timelyportfolio