Как я могу использовать VML на веб-странице?

Я хотел использовать VML для рисования фигур в IE. Я придумал следующий код, но он ничего не отображает в IE8.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style>v\: * { behavior:url(#default#VML); display:inline-block }</style>
<xml:namespace ns="urn:schemas-microsoft-com:vml" prefix="v" />
</head>

<body>
<xml:namespace ns="urn:schemas-microsoft-com:vml" prefix="v"/>
<object id="VMLRender" codebase="vgx.dll" classid="CLSID:10072CEC-8CC1-11D1-986E-00A0C955B42E">
</object> 

<v:rect style="width: 1in; height: 1in; left: 0.5in; top: 6in; rotation:0deg" fillcolor="#ffff00" strokecolor="#ff0000"/> 
</body>
</html>

person Manish Basdeo    schedule 27.06.2011    source источник


Ответы (2)


VML изменился в IE8: Изменения в VML для IE8

person Sindre Sorhus    schedule 27.06.2011

Я настоятельно рекомендую не использовать VML.

VML поддерживается только в IE. Вместо этого все другие браузеры поддерживают SVG, и даже в IE IE9 теперь поддерживает SVG и фактически поддерживает только VML как устаревшую функцию.

Конечно, это не поможет вам, если вы пытаетесь поддерживать IE версии 8 и более ранних версий, поскольку у них есть только VML, а не SVG. Однако существует ряд библиотек Javascript, которые позволяют вам работать с SVG и на лету конвертируют в VML для IE, а это означает, что если вы используете SVG, вы можете писать код, который работает во всех браузерах.

Лучшей из этих библиотек является Raphael. Это настоящая кросс-браузерная библиотека векторной графики, по умолчанию использующая SVG, но с откатом к VML, где это необходимо, и скрывающая все несоответствия браузера с помощью согласованного набора инструментов, полностью прозрачного как для вас, как разработчика, так и для ваших пользователей.

Еще одна библиотека, которую следует рассмотреть, — это SVG2VML. Есть ряд других, которые вы можете найти, погуглив.

Надеюсь, это поможет.

person Spudley    schedule 27.06.2011