例如,我想做如下的事情:
.myRedPath {
fillcolor: red;
}
...
<v:path class="myRedPath" v="..."/>
用红色填充我的路径。这对于 VML 元素的填充和描边属性的颜色和不透明度是否可行?如果是这样,怎么办?
正如其他答案中提到的,您可以使用DHMTL 行为将样式表中指定的任何样式应用到 VML 元素,因为 IE5 到 IE9 支持行为。
首先创建一个 HTC 文件,例如:vmlcss.htc:
<PUBLIC:COMPONENT>
<PUBLIC:ATTACH EVENT="onpropertychange" ONEVENT="onpropertychange()" />
<PUBLIC:METHOD NAME="refresh" />
<SCRIPT LANGUAGE="JScript">
function onpropertychange()
{
if (event.propertyName == "className")
{
refresh();
}
}
function refresh()
{
// Set any VML attribute you may define in your stylesheet
element.fillcolor = element.currentStyle["fillcolor"];
element.strokecolor = element.currentStyle["strokecolor"];
// etc.
}
refresh();
</SCRIPT>
</PUBLIC:COMPONENT>
然后将其应用到您的 VML 元素。对于您的特定示例,您将使用:
<style>
v\:path
{
behavior: url(vmlcss.htc);
}
</style>
最后,指定示例中所示的样式:
.myRedPath
{
fillcolor: red;
strokecolor: yellow;
}
您可能需要修改行为文件以添加对所有 VML 属性.
人们可以使用这样一种技术来编写一个库,该库使用 VML 或 SVG(取决于浏览器支持)绘制形状,并允许通过 CSS 进行样式设置。支持SVG 样式然后可以通过将每个 SVG 样式映射到相应的 VML 属性,使用此类行为文件将其添加到 VML 对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)