VML的基本概念

首页 > 网络编程 > CSS/HTML > VML相关 更新日期: 2016-03-23

VML相当于IE里面的画笔,能实现你所想要的图形,而且结合脚本,可以让图形产生动态的效果。VML是微软1999年9月附带IE5.0发布的,在我认为, VML其实是Word和HTML结合的产物。可以将Word文档另存为HTML,其中的文本和图片可以很容易的转换,但如果是手绘制的图形在以往的IE里面就无法解释了,如果都转换成图形文件又不太现实。于是微软把Word里面的图形控件结合到IE里面,使IE也具备了绘图功能。
    VML的全称是Vector Markup Language(矢量可标记语言),矢量的图形,意味着图形可以任意放大缩小而不损失图形的质量,这在制作地图上有很大用途。为了显示它的强大,和增加你学习VML的信心,先给你看看一个VML例子:
Hello world!
Hello VML!

    在VML里面,标记使用的是XML扩张,需要一个namespace(命名空间),你可以使用惯用的“v”作为命名空间,使用IE5.0到IE6.0通用的定义如下:
<html xmlns:v="urn:schemas-microsoft-com:vml">
<STYLE>
v\:* { Behavior: url(#default#VML) }
</STYLE>
    xmlns 全称就是XML NameSpace 也就是命名空间。Behavior(行为)也是IE5.0新推出的东西,它的功能非常强大,结合样式表,可以给任何HTML对象增加行为(新的属性、方法、事件),而在这里,它的用处是把命名空间“v”和系统预定义的行为VML连接。这样定义以后,你就可以使用下面的标记了,和普通的HTML标记有所区别,每个标记都增加了一个命名空间:
<v:shape></v:shape>
    和其他HTML元素一样,VML标记里面可以定义DHTML大部分属性和事件,比如说id,name,title,onmouseover等等。在写法上VML比较灵活,很多属性既可以写在标记里面,又可以独立出一个新的标记来表示:
<v:shape id=shape1 name=shape1 onmouseover="alert(this.id)" StrokeColor=red Path="m 0,0 l 10,10 x e"></v:shape>
等同于下面的写法:
<v:shape id=shape1 name=shape1 onmouseover="alert(this.id)">
<v:Stroke StrokeColor=red/>
<v:Path v="m 0,0 l 10,10 x e"/>
</v:shape>
    当然不是所有的属性都可以写成独立的标记,常用的比如说上面的 Stroke(按我的理解可以翻译成线性),Path,Shadow,Fill(填充)等,VML这样的方式可以理解为 shape 的属性分类,使属性更直观。
    Shape 对象派生出来的一些对象,更加直接的图象,比如说 Rect(矩形),RoundRect(圆边的矩形),Oval(圆),Line(线),PolyLine(不规则折线),Image(图形文件)等等,以后将对这些对象细细描述。

> 本站内容系网友提交或本网编辑转载,其目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除内容!

相关文章
  • 欢迎品尝用vml画的苹果~~
    如需引入外部Js需刷新才能执行] 如需引入外部Js需刷新才能执行] Tags:欢迎品尝用vml画的苹果~~ 相关文章 2006-12-12放大缩小VML2006-12-12欢迎品尝用vml画的苹果~~2006-12-12脚本动态生成VML2006-12-12数据图表2006-12-12VML的基本概念2006-12-12Group容器2006-12-12Im ...
  • C/S和B/S两种架构的概念、区别和联系
    C/S和B/S两种架构的概念、区别和联系
    这篇文章主要介绍了C/S和B/S两种架构的概念.区别和联系,本位还同时讲解了主流的Web程序应用平台.Web工作原理等内容,需要的朋友可以参考下     C/S和B/S,是再普通不过的两种软件架构方式,都可以进行同样的业务处理,甚至也可以用相同的方式实现共同的逻辑.既然如此,为何还要区分彼此呢?那我们就来看看二者的区别和联系. 一.C/S 架构 1. 概念 ...
  • rudy继承概念
    在日常生活中,我们对一切对象的分类都是有一定层次的.我们知道所有的猫都是哺乳动物,而所有的哺乳动物又都是动物.小型的类从更大的 类中继承它们的属性.如果一切的哺乳动物要呼吸,那么猫也要呼吸. 在Ruby里,我们可以这样表述这一概念: ruby> class Mammal     |   def breathe     |     print " ...
  • C#委托所蕴含的函数指针概念详细解析
    C#中用委托这种概念实现了函数指针技术而已,另外.ent提供额外的安全性,当然也损失了灵活性原则: 1.函数指针,实际上是函数编码后的指令在内存中的首地址,在C++/C中,这个地址可以用函数名直接使用 一个函数调用另一个函数的时候,就可以把被调用函数以函数指针的形式作为参数传入 2.回调函数callback使用的技术就是函数指针: 回调函数就好像是一个中断处 ...
  • asp控件和html控件的概念区别
    这篇文章主要介绍了asp控件和html控件的概念区别,不清楚的朋友可以参考下首先我们说说二者的概念区别吧(相信大家都清楚) 1. asp控件是服务端控件,html是客户端控件. 2. asp控件在服务端解析后,会转化为html控件使得客户端浏览器能够显示出来.也就是说最终的产物都是html控件. 3. asp控件只有安装.netFrameWork的服务器才能 ...
  • 栈和队列数据结构的基本概念及其相关的Python实现
    这篇文章主要介绍了栈和队列数据结构的基本概念及其相关的Python实现,先进先出和后进先出的知识也已经成为了计算机学习中的老生常谈了:D需要的朋友可以参考下先来回顾一下栈和队列的基本概念: 相同点:从"数据结构"的角度看,它们都是线性结构,即数据元素之间的关系相同. 不同点:栈(Stack)是限定只能在表的一端进行插入和删除操作的线性表. ...
猜你喜欢