我有兴趣找到一个浏览器兼容性表,其中列出了每个版本的Opera,Safari,Chrome,Firefox和Internet Explorer支持的SVG/VML部分(Konqueror也很棒)Quirksmode.
我找到了SVG的以下两个兼容性表,但它们都没有提供足够的细节:
第一个链接中的信息似乎与像Raphael这样的图书馆发生冲突,后者声称完全支持Firefox 3.0+和Safari 3.0+中的动画,而链接表明动画模块直到这两个浏览器的更高版本才会实现.
第二个链接根本不足以让我能够得出关于我可以使用哪些SVG/VML功能来确保与旧浏览器兼容的结论.
不用说,我无休止地困惑.
为了清楚起见,我很想知道在所有流行浏览器的不同版本中支持哪个SVG部分.由于IE不支持SVG,我有兴趣找出不同版本的IE支持哪些VML部分.
如果图书馆的开发者发现这些信息必须存在,那似乎就是在逃避我.
任何帮助将非常感激.
我正在我的ASP.NET Web应用程序中绘制形状.在IE9和其他浏览器中,我正在使用SVG,它工作得很好.在IE8及以下版本中,我使用的是VML.我发现当它处于IE8标准模式(不使用兼容性视图)时,IE8根本不显示VML.
我的doctype设置为<!DOCTYPE html>.如果我参加了doctype走完全,IE8进入怪癖模式和工作正常,但IE9然后去它的怪癖模式(而不是IE9标准),并且不显示SVG.
这是在测试页面上发生的,因此除了包含div的表单之外没有任何内容,div包含<svg>元素及其子元素或VML元素.
这里发生了什么?看起来我不应该为不同的浏览器更改doctype,而且Stack Exchange用户页面上的信誉图看起来也是一样的(IE8及以下的VML,其他人的SVG,HTML5 doctype)......
internet-explorer svg vml internet-explorer-8 internet-explorer-9
只是想知道是否有人遇到过一个工具或任何东西,使这个过程更容易将VML转换为SVG或其他一些现代格式(Silverlight,flash).
我正在处理一些传统的VML浏览器渲染,我想让它与浏览器兼容.现在,vml正在服务器端生成.
如果有一个图表将VML标记映射到SVG,以表格格式作为备忘单或其他内容,也会有所帮助.
谢谢
我使用RaphaelJS生成SVG.我的SVG宽度和高度是1024px.我使用setViewBox因为包含它的div比510px宽度和高度小.
使用IE8 RaphaelJS生成VML但setViewBox不起作用,生成的VML 大小为1024px.
我如何才能使VML响应?
paper = Raphael(document.getElementById("SVGDiv"));
paper.canvas.id = 'paper';
paper.setViewBox(0,0,1024,1024);
paper.setViewBox(0,0,1024,1024);
image = paper.image("",0,0, 1024, 1024);
text = paper.text(512, 512, '');
if( isIE() > 8 || isIE() == false){
paper.setSize("100%","100%");
}
Run Code Online (Sandbox Code Playgroud) C# / .NET 有没有办法将 VML 渲染成位图?
我认为这应该很容易,但我似乎在 .NET 文档中找不到类似的内容。
我希望能够在标准模式下的页面渲染上使用vml对象而不是quirks模式.我发现散布的答案碎片却无法解决.Raphael以某种方式将其拉下来,但我无法扭转它以弄清楚发生了什么.任何基本的工作示例都会很棒.
我有一个SVG文件,我想在Internet Explorer中查看。
IE将VML用于矢量文件,但是我在任何地方都找不到这两种格式之间的任何转换!(不在Inkscape,Illustrator,OpenOffice Draw中.....怎么可能!)
我看了Raphael,但Raphael无法读取现有文件。
我发现了http://vectorconverter.sourceforge.net/index.html
但我不明白如何使用...有什么帮助吗?
例如,我想做类似以下的事情:
.myRedPath {
fillcolor: red;
}
...
<v:path class="myRedPath" v="..."/>
Run Code Online (Sandbox Code Playgroud)
用红色填充我的路径.VML元素的填充和描边属性的颜色和不透明度是否可以实现?如果是这样,怎么样?
我见过很多人都在为这件事而斗争,但我找不到合适的解决方案,也找不到符合我需要的解决方案.
我正在用Raphael做一些图表,我基本上需要将它们作为PNG(用于导出,或稍后用于PDF,以及其他一些东西).对于Firefox,Chrome,IE 9以及任何其他支持SVG的浏览器都很简单.实际上有两种实现方法:使用canvg将SVG渲染为canvas元素,然后获取图像数据; 或者将SVG发送到服务器(C#)并使用库来栅格化它.
问题当然是IE 8和7.在这些浏览器中,Raphael输出VML,并且显然没有办法获得SVG源.我找不到任何VML光栅化器,所以它让我只有一个解决方案:将VML转换为SVG,或者在SVG中重绘纸张.
我检查了vectorconvert库PHP,它实际上使用XSLT转换将VML转换为SVG,但我无法使其工作(我已经尝试了几种工具来测试XSL,但似乎都没有工作).
我试图迫使拉斐尔输出SVG到隐藏的div,通过改变其性质.type,.svg以及.vml适当的,但也不能工作.
我认为在IE中可能有一种方法可以将SVG树写入隐藏的DIV中; 尽管浏览器不会显示它,但文本应该在那里.
有谁知道实现它的方法?谢谢!
我试图在VML中创建一个与clip-pathSVG 对应的剪贴蒙版?那可能吗?
基于众多但相当有限的例子我尝试绘制形状:
<vml:group style="WIDTH: 1px; HEIGHT: 1px" class=vml-element coordsize = "1,1">
<vml:shape style="WIDTH: 1px; HEIGHT: 1px" id=vectorObject2 class=vml-element _fill-color="red" _fill-opacity="1" _stroke-color="black" _stroke-opacity="1" _stroke-width="1" coordsize = "1,1" filled = "t" fillcolor = "red" stroked = "t" strokecolor = "black" strokeweight = ".75pt" path = "m0,0 l100,0,0,100 xe">
<vml:fill class=vml-element opacity = "1"></vml:fill>
<vml:stroke class=vml-element opacity = "1"></vml:stroke>
</vml:shape>
</vml:group>
Run Code Online (Sandbox Code Playgroud)
然后使用vmlframe以下方法屏蔽它:
<vml:vmlframe class=vml-element clip = "t" size = "15pt,37.5pt" src = "#vectorObject2"> </vml:vmlframe>
Run Code Online (Sandbox Code Playgroud)
形状(三角形)的绘制按预期工作,但我找不到使用vmlframe屏蔽它的方法.这是实现掩蔽的正确方法吗? …