是否可以使用 CSS 在 VML 路径上设置填充和描边颜色以及不透明度?
例如,我想做类似以下的事情:
.myRedPath {
fillcolor: red;
}
...
<v:path class="myRedPath" v="..."/>
用红色填充我的路径。这对于 VML 元素的填充和描边属性的颜色和不透明度是否可行?如果是这样,怎么办?
For example, I'd like to do something like the following:
.myRedPath {
fillcolor: red;
}
...
<v:path class="myRedPath" v="..."/>
to fill my paths with a red color. Is this possible with the color and opacity of the fill and stroke attributes for VML elements? If so, how?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
正如其他答案中提到的,您可以使用 DHMTL 行为< /a> 将样式表中指定的任何样式应用到 VML 元素,因为 IE5 到 IE9 均支持行为。
首先创建一个 HTC 文件,例如: vmlcss.htc:
然后将其应用到您的 VML 元素。对于您的特定示例,您将使用:
最后,指定示例中所示的样式:
您可能需要修改行为文件以添加对 所有 VML 属性。
人们可以使用这样一种技术来编写一个库,该库使用 VML 或 SVG(取决于浏览器支持)绘制形状,并允许通过 CSS 进行样式设置。然后可以使用此类行为文件将对 SVG 样式 的支持添加到 VML 对象中通过将每个 SVG 样式映射到相应的 VML 属性。
As mentioned in other answers, you may use DHMTL behaviors to apply any style specified in your style sheet to your VML element as behaviors are supported from IE5 to IE9.
Start by creating a HTC file, eg: vmlcss.htc:
Then apply it to your VML elements. For your particular example, you would use:
Finally, specify the styles as shown in your example:
You may want to modify the behavior file to add support for all VML attributes.
One could use such a technique to write a library that draws shapes using VML or SVG (depending on the browser support) and allows styling through CSS. Support for SVG styles could then be added to the VML objects using such a behavior file by mapping each SVG style to the corresponding VML attributes.
在 IE7 中,您可以执行以下操作:
但它在 IE8+ 标准模式下不起作用,因此并没有多大用处。
In IE7, you can do following:
But it doesn't work in IE8+ Standards mode, so not really that much useful.
VML 使用属性而不是 CSS 属性,因此在样式表中引用它们的唯一方法是添加另一个引用 htc 的行为 URL,该 htc 设置属性值。否则,使用 HTML 元素来包装 VML 元素并向其添加背景颜色:
VML uses attributes instead of CSS properties, so the only way to reference them in a style sheet is to add another behavior URL which references a htc which sets attribute values. Otherwise, use a HTML element to wrap the VML element and add the background color to it: