css - 对 Raphael 从外部样式表创建的 VML 元素进行样式化

标签 css svg internet-explorer-8 raphael vml

我正在使用 Raphael.js 构建图表,这些图表附加了各种样式,包括不同的悬停样式。以下内容适用于各种浏览器:

var bar = paper.rect(x, y, width, height)
               .attr({"stroke-width": 0, fill: #baeadd; "fill-opacity": 0.3})

为了将外观与功能完全分离,我尝试使用 CSS 定位我的 Raphael 元素并从那里添加所有样式。

我使用了概述的技术 here能够使用唯一的 ID 在所有浏览器中定位我的形状:

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,Raphael 改为注入(inject) 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 中指定它们。

最佳答案

没有办法做到这一点,因为 IE8 需要在 VML 元素上设置属性。

关于css - 对 Raphael 从外部样式表创建的 VML 元素进行样式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21906443/

相关文章:

javascript - 设置 vendor 样式?

javascript - Accessibility: d3 brush/zoom 可以获得焦点并用键盘控制

css - 正斜杠/in CSS 边框半径语法

javascript - 无法使用 jQuery (IE 8) 访问文档的标题元素

css - Modernizr 加载但在 IE8 中没有变化

html - Foundation 5.2 - 下拉子菜单方向

jquery - 使用 -webkit-mask 自定义 jQuery Mobile 转换

image - flutter 中的SvgPicture图像渲染错误

javascript - 当图表图像不适合内部时,在栏外显示图表图像

html - anchor 标签不起作用并保持选中状态,直到我再次单击