Обзор
Наверняка мало кто из вас слышал о VML (Vector Markup Language). Этот удобный и мощный язык был незаслуженно забыт по трем причинам:
- выполнение его предполагало наличие специального plug-in в IE у пользователя - FLASH во многих случаях оказался удобней - SVG (альтернативный язык, применяемых для сходных целей) вытеснил его
Но VML привлекателен своей простотой (достаточно базового знания HTML) и безопасностью (в нем не было обнаружено "дырок", таких как во Флеше). С помощью него можно рисовать графики и много других нужных вещей. Вот, например, один из примитивов VML:
Итак, с чего начать? Начать нужно с понимания того, что этот язык является подмножеством XML и, следовательно, все тэги должны быть обязательно закрыты. Теперь нам нужно немного изменить начало нашей странички, а точнее, аттрибуты тэга html:
<html xmlns:v="urn:schemas-microsoft-com:vml">
С этой строки начинается любой VML-документ. Далее нам нужно сделать следующее объявление:
<style> v:* { behavior: url(#default#VML); } </style>
Ну вот, теперь в любом месте между тэгами <body> и </body> мы можем использовать тэги VML, например:
<v:roundrect style="width:150pt;height:50pt"/> (нарисует прямоугольник со скругленными углами, ширина 150б высота 50)
Подробнее
Так в чем же фишка? А фишка в том, что мы можем делать с нашими объектами после загрузки все, что пожелаем - ведь, как вы заметили, параметры фигур описываются точно так же, как и в стилях. Кроме того, мы можем менять параметры и положение объектов VML при помощи скриптов. Например, нарисовать линию в VML очень просто: <v:line from="10,10" to="100,100"/> Еще можно нарисовать, например, овал - это для сравнения: <v:oval style="position:absolute;top:100;left:100; width:150pt;height:50pt" fillcolor="green"/> А вот пример с использованием многих разных фигур:
<v:line strokecolor="red" strokeweight="2pt" from="100pt,100pt" to="200pt,150pt"> <v:stroke endarrow="diamond"/> </v:line>
<v:line strokecolor="yellow"strokeweight="2pt" from="100pt,100pt" to="50pt,100pt" > <v:stroke endarrow="classic"/> </v:line>
<v:line strokecolor="blue" strokeweight="2pt" from="100pt,100pt" to="120pt,120pt" > <v:stroke endarrow="block"/> </v:line>
<v:line strokecolor="black" strokeweight="2pt" from="100pt,100pt" to="150pt,200pt"> <v:stroke endarrow="none"/> </v:line>
<v:line strokecolor="green" strokeweight="2pt" from="100pt,100pt" to="200pt,85pt"> <v:stroke endarrow="oval"/> </v:line>
<v:line strokecolor="green" strokeweight="2pt" from="100pt,100pt" to="200pt,100pt"> <v:stroke endarrow="open"/> </v:line>
<v:oval style="width:100pt; height: 50pt" fillcolor="pink" /> <v:curve from="10pt,10pt" to="100pt,10pt" control1="40pt,30pt" control2="70pt,30pt"> </v:curve>
<v:rect id=myrect fillcolor="red" style="position:relative;top:100;left:100;width:20;height:20;rotation:10"> </v:rect> <>
Для удобства можно включать в этот код комментарии HTML. Фигуры VML при этом являются такими же объектами для скриптовых языков типа JavaScript, как и объекты HTML, таким образом, мы имеем к ним полный доступ и можем динамически модифицировать. И еще одно хорошее преимущество: можно значительно уменьшить размер Вашей странички, заменяя несложные рисунки и графики тэгами VML, например кривую такого графика:
можно заменить такой строкой
<v:polyline points="5pt,10pt 15pt,20pt 100pt,50pt 50pt,100pt 5pt,10pt"/> В следующей соей статье я постараюсь осветить SVG, а пока - поэкспериментируйте с VML. Успехов! |