Я строю диаграммы с Raphael.js, которые придают им все виды стилизации, в том числе различные стили для зависания. Следующие работы во всех браузерах:Элементы стиля VML, созданные Рафаэлем из внешней таблицы стилей
var bar = paper.rect(x, y, width, height)
.attr({"stroke-width": 0, fill: #baeadd; "fill-opacity": 0.3})
В попытке полностью отделить внешний вид с функциональностью, я пытаюсь настроить таргетинг Рафаэль элементов с помощью CSS и добавить все стили оттуда.
я использовал технику, описанную here, чтобы иметь возможность ориентировать свои формы во всех браузерах, используя уникальный ID-s:
bar.node.id = "bar-" + id;
-
*[id^="bar"] {
// Attributes listed here seem to work in modern browsers
// http://raphaeljs.com/reference.html#Element.attr
fill: #baeadd;
fill-opacity: 0.3;
}
*[id^="bar"]:hover {
fill-opacity: 0.5;
}
выше не работает на IE8, где Рафаэль вводит элементы формы vml. Я могу указать стандартные свойства CSS, такие как background-color
, и элемент формы получит стилирование, но я хотел бы знать, как применять такие атрибуты, как fill-opacity
, stroke-width
и тому подобное.
Is it possible to set fill and stroke colors and opacity on VML paths using CSS? объясняет роль behavior: url(#default#VML)
. Я вижу, что Raphael уже добавляет класс .rvml
ко всем элементам формы, которые он создает, и применяет это свойство поведения, но оно, похоже, не вступает в силу, как только я прекращаю применять атрибуты через JS и начинаю указывать их в CSS.
Привет, Элиз, пожалуйста, проверьте мой ответ здесь: http://stackoverflow.com/a/25908706/1010492 –