当我们使用js去创建vml dom节点时,发现在IE8下使用setAttribute设置属性不能生效,很是郁闷。
有人说提供了解决方式如下:
在IE6,7下可以使用setAttribute,例如dom.setAttribute("stroke")
IE8下使用点运算符可以做到,例如 dom.stroked="f"
dom.stroked="f"这种方式有个缺陷,就是你要事先知道要修改哪个属性。
我们在创建vml dom对象时一般会这样些
var attr = {
stroked:"f"
fillcolor:"red"
}
for(var k in attr){
dom.setAttribute(k,attr[k]);
}
采用点的方式,就不太方便了
IE8下不能采用setAttribute的具体表现是,当你先创建一个裸的dom(就是什么属性都没有指定),让后appendChild到parent中后,你在setAttribute修改dom属性时,IE8会没有反应,其实只要调整一下顺序就可以了,就是,创建dom后,先setAttribute,最后在appendChild到parent中,这样就有反应了
学习VML确实比较痛苦,尤其是学过SVG后再学VML。
我的感觉就是VML什么问题都有可能发生,但它也能做到你需要的效果,只是方式往往和我们想的不一样。
分享到:
相关推荐
VML在微软的IE浏览器中得到了很好的支持,这使得它成为开发跨平台图形解决方案的一个选择,特别是在那些需要兼容旧版IE的项目中。 标题"vml.zip_VML_vml ie"表明这个压缩包包含的是与VML相关的资源,特别是针对...
为了在不支持VML的浏览器中显示图形,开发者通常需要使用JavaScript库,如jQuery的SVG插件,或者使用条件注释来针对IE浏览器提供VML支持,而对于其他浏览器则提供SVG代码。这种技术被称为“渐进增强”或“优雅降级”...
VML,全称Vector Markup Language,是一种用于在网页上呈现矢量图形的技术,尤其在IE浏览器的早期版本中广泛使用。由于HTML和CSS在当时对矢量图形支持不足,VML成为了替代方案,允许开发者创建复杂的图形、图表和...
VML,全称Vector Markup Language,是一种用于在网页上呈现矢量图形的标记语言,它基于XML,主要用于在Internet Explorer浏览器中创建和展示图形。在HTML文档中,VML可以通过添加命名空间来实现,例如`...
综上所述,VML在特定环境下,特别是对于需要在旧版IE浏览器中实现矢量图形绘制的场景,是一个实用的选择。然而,随着现代浏览器的广泛使用,开发者更倾向于使用SVG或Canvas等更先进、更兼容的解决方案。在实际项目中...
总之,基于VML的IE绘图软件设计与实现,是利用VML的矢量图形能力、JavaScript的动态编程特性和DOM的页面操作接口,开发出的一款能够在线编辑和发布矢量图形的工具,它解决了在互联网上高效处理和展示矢量图形的问题...
由于IE浏览器对VML的良好支持,开发者们常常借助它来实现复杂的图形渲染,尤其是在CSS3不被支持的老版本IE中。VML通过定义形状、路径、群组等元素,可以绘制出各种矢量图形。 二、圆角边框 在CSS3中,`border-...
然而,在需要兼容旧版IE的场景下,VML仍然是一个有用的工具。 总的来说,VML是一个历史悠久的矢量图形解决方案,虽然现在已经被SVG所取代,但对于了解早期网页图形技术的历史和开发面向旧版IE浏览器的应用仍然有...
在实践中,理解和运用VML将有助于你为那些仍在使用旧版IE的用户提供更好的视觉体验,尽管随着浏览器的更新,VML的重要性已经逐渐减弱。不过,了解这种技术的历史和工作原理仍然对理解Web图形的发展历程有帮助。
2. **兼容性**:尽管SVG(Scalable Vector Graphics)在现代浏览器中已经成为矢量图形的标准,但VML主要为了解决IE浏览器(尤其是早期版本)对SVG不支持的问题。 3. **应用场景**:在CSS3和SVG普及之前,VML常用于...
3. **浏览器兼容性**:由于VML是微软特有,所以代码中可能包含针对IE的特定处理,同时可能使用条件注释或其他技术来确保在非IE浏览器下也能正常工作。 4. **CSS样式**:虽然VML是XML,但它也可以通过CSS来控制样式...
4. **设置ECharts配置**:在初始化ECharts时,设置`renderTo`属性指向一个已存在的DOM元素,并确保浏览器兼容性设置正确,例如`useCanvas: false`来启用VML渲染。 5. **CSS兼容性**:检查并修改使用的CSS,确保所有...
为了确保跨浏览器兼容性,可以使用条件注释或者库如Excanvas,它在不支持VML的浏览器中模拟VML的功能。 7. **交互与响应式设计**: 结合jQuery,可以实现鼠标悬停时显示工具提示,或者在窗口大小变化时自适应调整...
现代浏览器通常不支持VML,因此在开发时需要结合CSS3的`-webkit-`、`-moz-`等前缀或者使用SVG来实现类似功能,确保在非IE浏览器上的正常显示。 为了帮助开发者更好地理解VML,您可以参考提供的"line_vml.htm"文件,...
在特定的历史时期,尤其是在Internet Explorer(IE)浏览器占据主导地位时,由于其对现代Web标准如SVG(Scalable Vector Graphics)的支持不完全,开发者们常常采用VML(Vector Markup Language)技术来在IE中实现...
VML相当于IE里面的画笔,能实现你所想要的图形,而且结合脚本,可以让图形产生动态的效果。VML是微软1999年9月附带IE5.0发布的,在我认为, VML其实是Word和HTML结合的产物。可以将Word文档另存为HTML,其中的文本...
注意,由于VML是针对IE的解决方案,所以对于其他浏览器,你可能需要使用CSS3的`border-radius`属性来实现圆角。为了实现跨浏览器兼容性,你可以使用JavaScript库如jQuery或Modernizr,根据浏览器类型动态地应用适当...
在VML中,可以使用`<vml:textbox>`标签来添加文本,`textpath`属性用于指定文本沿哪个路径排列。例如: ```xml <vml:textbox style="font-family:Arial; font-size:16pt;"> <vml:textpath string="Hello, VML!" on...
对于Web开发者来说,掌握VML技能可以在一些特定情况下提供优势,尤其是在需要兼容旧版IE浏览器的项目中。 总之,"vml极道教程"是一份全面的学习资料,不仅涵盖VML的基本概念和技术,还涉及到其动态扩展和与其他技术...
1. **VML基础概念**:介绍VML的基本结构,如如何定义一个图形元素,以及元素的属性和样式设置。 2. **基本图形绘制**:讲解如何用VML代码绘制直线、曲线、圆形、矩形等基本形状,并且可能会涉及填充颜色、描边样式...