### VML技术简明教程
#### 一、VML简介
VML(Vector Markup Language)是一种用于在Web页面上绘制矢量图形的技术。它是由微软在1999年之前推出的一种浏览器图形渲染技术,并且被集成到了IE5及以后的版本中。通过VML,开发者能够在浏览器中绘制各种形状和图形,包括直线、圆形、圆弧、曲线、矩形、圆角矩形、多边形等。此外,VML还能用于创建复杂的图像、动画甚至是游戏。
VML最初是由微软、Visio、Autodesk和Macromedia等公司联合推荐给W3C(万维网联盟)的。W3C根据这些公司的建议,综合了VML和其他技术的特点,于1999年开始发展SVG(Scalable Vector Graphics),并在不久之后推出了SVG标准。SVG相比VML,在输出效率、图形质量和标记扩展性方面进行了改进,但它需要专用的图像阅读器才能显示,如Adobe SVG Viewer。
尽管SVG后来成为了矢量图形的标准,但VML仍然因其简便的编写方式、浏览器兼容性和与HTML的无缝集成而具有一定的实用性。遗憾的是,目前仅IE浏览器支持VML。
#### 二、VML基础知识
如果你已经熟悉HTML,学习VML将非常容易。VML的语法和HTML相似,同时也支持CSS和JavaScript。
**1. 基本语法**
- 标签以 `<V:XXX>` 开头,`</V:XXX>` 结尾,也支持空标签形式 `<V:XXX/>`。
- 标签不区分大小写。
- 标签之间可以相互嵌套,可以是VML标签或HTML标签。
- 属性的写法为 `"parameter=value"`,例如 `<V:XXX parameter="value">`。
**2. 对CSS和JavaScript的支持**
VML支持内联样式,可以通过 `style` 属性来定义CSS样式,如:
```html
<V:XXX style="parameter1:value1; parameter2:value2">
```
**3. VML文件扩展名**
VML文件可以采用常见的Web文件格式,如 `.htm`, `.html`, `.asp`, `.php`, `.jsp` 等。
**4. VML编辑器**
任何文本编辑器都可以用来编写VML代码,如记事本、EditPlus、Dreamweaver等。也有一些专业的编辑器,如FlashVml3.0。
**5. 简单范例**
以下是一个简单的VML示例代码,展示如何在HTML中嵌入VML来绘制一条直线:
```html
<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office">
<head>
<title>第一个VML范例</title>
<style>
v\:* { behavior:url(#default#VML); }
o\:* { behavior:url(#default#VML); }
</style>
</head>
<body>
<v:line style="z-index:5; position:absolute; left:233; top:150" from="0,0" to="200,200"/>
</body>
</html>
```
- `xmlns:v="urn:schemas-microsoft-com:vml"`:声明一个名为v的XML命名空间,用于标识VML元素。
- `xmlns:o="urn:schemas-microsoft-com:office:office"`:引入与Office相关的标记处理扩展。
- `<v:line style="z-index:5; position:absolute; left:233; top:150" from="0,0" to="200,200"/>`:创建一条从 `(0,0)` 到 `(200,200)` 的直线。
#### 三、通用属性
VML中有一些常用的属性,这些属性在大部分的VML标签中都是可用的。下面按照类别介绍这些属性:
1. **VML特定属性**:这些属性是VML特有的,比如 `from` 和 `to` 用于指定线段的起点和终点坐标。
2. **HTML共享属性**:这些属性与HTML中的属性相同,如 `id`, `class`, `style` 等。
3. **CSS共享属性**:这些属性类似于CSS样式,例如 `position`, `left`, `top` 等。
以上就是VML的基础知识和技术要点。虽然VML不再是最新的技术,但在某些特定场景下仍然有其独特的价值。