Можно ли включить пользовательский css в htmlwidgets для R и/или LeafletR?

Я хотел бы внести некоторые изменения в стиль моей карты листовки.

Можно ли включить

  • элементы стиля ИЛИ
  • собственный путь к файлу css

либо через htmlwidgets для R, либо через LeafletR?

Лучший


person kabr    schedule 01.03.2016    source источник
comment
у вас есть немного воспроизводимого кода или пример пользовательского стиля листовки? Кажется, у меня есть ответ, но я не знаю. htmltools определенно будет вашим другом здесь, но есть и другие варианты, которые мы можем изучить с помощью зависимостей.   -  person timelyportfolio    schedule 02.03.2016
comment
также вы используете в rmarkdown или нет?   -  person timelyportfolio    schedule 02.03.2016
comment
нет, я не использую rmarkdown. Я хотел бы использовать его на отдельном веб-сайте.   -  person kabr    schedule 03.03.2016


Ответы (1)


Без кода в вашем вопросе ответить очень сложно. Я попытаюсь ответить. Существует два метода добавления пользовательского CSS в файл htmlwidget. Заранее предупрежу, что вам нужно быть очень конкретным или использовать переопределение !important, так как уже существует достаточно бит CSS, который автоматически добавляется к leaflet.

Простой, но менее надежный

htmlwidgets можно комбинировать с tags из пакета htmltools.

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
person timelyportfolio    schedule 03.03.2016
comment
Спасибо. Именно то, что мне было нужно. - person kabr; 03.03.2016