最近因为做SVG 方面的开发工作,所以研究起SVG 的一些东西。

手头上使用的资料是SVG 官方的文档,《SVG essentials 》,《基于XML 的SVG 应用指南》。

网上说,firefox,opera, 都可以直接支持SVG ,当然安装了SVG 插件的IE 也行。

马上开始行动,代码之前,了无秘密。 写一个最简单的SVG 文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg    width="1024"    height="768">     <rect        style="opacity:1;fill:#00ff00"        id="rect2160"        width="540"        height="511.42856"        x="42.857143"        y="158.07646" /> </svg>

使用安装了Adobe SVGViewerd 的IE 浏览器打开,可以正常显示,如下图:

再使用 firefox 打开,不行,不可以正常显示, firefox 把它当作 xml 文件来显示了,如下图:

上网查资料,网上都说: firefox 可以直接支持 SVG ,具体怎么支持 SVG ,都没提到。而且,好像没人遇到我这样的问题。是不是其他人见到别人说支持,也就人云亦云,说支持,而自己没去检验过。关于这点不可考究。

既然遇到问题,就解决它。首先我找了其他 SVG 的编辑软件来看看。首先使用开源的 Inkspace 软件。用它编辑了一个 SVG 文件,然后用 firefox 打开,可以正常显示。这证明了, friefox 是可以正常支持 SVG 的。具体为什么,继续研究。

我对比了 Inkspace 生成的文件源代码和我写的 SVG 文件源代码,发现 Inkspace 生成的文件里面多了一行东西:

xmlns="http://www.w3.org/2000/svg"

我把这行代码加入到我的 SVG 文件中,编程下面的样子:

?xml version="1.0" encoding="UTF-8" standalone="no"?>

<svg

width="1024"

height="768" xmlns="http://www.w3.org/2000/svg">

<rect

style="opacity:1;fill:#00ff00"

id="rect2160"

width="540"

height="511.42856"

x="42.857143"

y="158.07646" />

</svg>

保存后再用 Firefox 打开, OK, 这次可以正常显示了,如下图:

做技术,我们要知其因。为什么加上那一行代码以后就可以正常显示了呢?

查资料

我在 《SVG essentials 》查到这么一段:

SVG uses the URI http://www.w3.org/2000/svg for its namespace. The URI is just an

identifier — opening that page in a Web browser reveals some links to the SVG, XML

1.0, and Namespaces in XML specifications. Programs processing documents with

multiple vocabularies can use the namespaces to figure out which vocabulary they are

handling at any given point in a document.

SVG applies the namespace in the root element of SVG documents:

<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100">

....

</svg>

大意是说: SVG 使用 http://www.w3.org/2000/svg 这个链接来标识文件是 SVG 的命名空间,这个链接是一个标志而已,用来告诉打开文件的软件:这个文件是 SVG 文件,而不是把它当成 XML 文 件打开。另外,如果要在SVG加入图片的链接,还要加上这一句,xmlns:xlink="http://www.w3.org/1999 /xlink"。Opera好像不支持图片的链接。而firefox和Opera都好像不支持中文文字的字体的各种参数的设置。哪位大虾知道的麻烦告诉 我。

PS :转走的记得标明出处。

http://blog.csdn.net/Feisy/archive/2008/06/19/2564509.aspx

关于SVG文件在Firefox中正确显示的研究相关推荐

  1. 全部都显示服务器已加扰,特殊字符在浏览器中正确显示,但在phpMyAdmin中加扰...

    我有一个php netbeans项目.该项目的编码是UTF-8.特殊字符在ide中正确显示. (img 1)特殊字符在浏览器中正确显示,但在phpMyAdmin中加扰 我使用phpmyadmin,整个 ...

  2. processon导出的svg 插入到word中不显示图形边框

    processon导出的svg 插入到word中不显示图形边框 半个解决方案 lpxlpxlpxlpxlpxl 用户评论 2022.06.01 问题解决了,不显示边框是因为插入的时候默认边框为白色了, ...

  3. 解决QQ识图后复制文字然后将其粘贴到文件重命名中,总是显示重命名不成功

    如图再使用QQ屏幕识图后,复制文字,然后粘贴到文件重命名中,提示文件名不能包含下列任何字符: \ / : * ? " < > l 解决方法: 贴完以后会发现有个类似于软回车一样的 ...

  4. python读取excel日期和时间数据_python 在excel文件中写入date日期数据,以及读取excel日期数据,如何在python中正确显示date日期。...

    如何通过python写入date数据了? 写入还是很简单的. import xlwt3 import  datetime as dt workbook = xlwt.Workbook() worksh ...

  5. 原创:嵌入图片的HTML内容在FLASH AS3中正确显示的最佳解决方案

    做一个项目,遇到这个该死的问题,尝试了几乎所有解决方法,几近崩溃,终于找到完美解决方案.因为在网上,无论中文还是英文,搜索了无数遍,都没人给出正确答案,所以,在此记下,但愿能帮到跟我一样遇到这个问题的 ...

  6. .idea文件在项目中的显示与隐藏

    设置路径:settings -- File Types -- Ignored Files and Folders 在Ignored Files and Folders中,写入.idea文件,在外面项目 ...

  7. PNG透明图片在IE浏览器中正确显示

    png图片有很好的品质.阴影效果也不会有杂边,很流畅.如果插入网页的话可以给网站内容增色不少!更重要的是在不增加图片容量大小的情况下提高了页面的图片的质量.对于有复杂背景,如:在有颜色过度背景上插入不 ...

  8. 【已解决】Tortoise Git在Windows文件资源管理器中图标显示异常问题

    文章目录 1. 按 2. 解决方案 3. 原理说明 1. 按 我们在安装了OneDrive.坚果云.NextCloud 等网盘同步或者其他软件后会发现Tortoise Git的图标显示异常,不能正常加 ...

  9. Unix时间戳在Excel中正确显示

    从1970年1月1日开始所经过的秒数,Unix 时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒. 参见: unix时间戳_百度百科 在32位的Unix中,十进制数字的 ...

最新文章

  1. vue-devTools插件安装流程
  2. Selenium2+python自动化1(环境安装)
  3. 【研究报告】城市云脑,智慧城市2.0产生背后的深层原因,两个重要特征是关键
  4. Easyui 让DataGrid适应浏览器宽度
  5. MongoDB-JAVA-Driver 3.2版本常用代码全整理(4) - 地理空间索引
  6. java原生的编译软件_Java 转原生平台代码 RoboVM
  7. python中可选参数是什么意思_Python如何定义有可选参数的元类
  8. Chapter 4 Invitations——25
  9. 能干的产品经理比不上能说的产品经理
  10. php mysql 备份还原_PHP执行Mysql数据库的备份和还原
  11. 40 WM配置-作业-确认(转储单TO确认)
  12. C# 操作符重载 模拟String
  13. php imagerotate png,php imagerotate,rotate image,rotateimage opencv
  14. jmeter 配置master控制器压测机
  15. LINUX下opencv的编译安装
  16. [Linux]如何读取Kernel cmdline
  17. VAR模型与VECM模型
  18. 偶尔文艺-关于想要转录MIDI从YAMAHA到MAC
  19. Cake slicing
  20. 软件架构-redis特性和集群特性(下)

热门文章

  1. PHP提高redis命中率,怎么提高redis缓存命中率
  2. b类 蚂蚁金服_【面经】超硬核面经,已拿蚂蚁金服Offer!!
  3. 10投屏后没有声音_钉钉怎么投屏,秒懂投屏详解
  4. 计算机 课题学科代码,学科分类与代码表课题.doc
  5. liferay 调用ajax
  6. Spring框架之权限管理
  7. 安卓Android Studio开发IDE的安装
  8. 印度程序员为什么牛掰之ISAS.激发人的兴趣.探索精神.
  9. JAVA15.JDK15新特性.4 TextBlock
  10. linux centos更换用户名和密码忘记了,centos7系统中忘记root管理员账号密码,怎么修改密码的解决方式...