Как упоминалось в других ответах, вы можете использовать поведение DHMTL, чтобы применить любой стиль, указанный в вашей таблице стилей, к вашему элементу VML, поскольку поведение поддерживается от IE5 до IE9.
Начните с создания файла HTC, например: vmlcss.htc:
<PUBLIC:COMPONENT>
<PUBLIC:ATTACH EVENT="onpropertychange" ONEVENT="onpropertychange()" />
<PUBLIC:METHOD NAME="refresh" />
<SCRIPT LANGUAGE="JScript">
function onpropertychange()
{
if (event.propertyName == "className")
{
refresh();
}
}
function refresh()
{
// Set any VML attribute you may define in your stylesheet
element.fillcolor = element.currentStyle["fillcolor"];
element.strokecolor = element.currentStyle["strokecolor"];
// etc.
}
refresh();
</SCRIPT>
</PUBLIC:COMPONENT>
Затем примените его к своим элементам VML. Для вашего конкретного примера вы должны использовать:
<style>
v\:path
{
behavior: url(vmlcss.htc);
}
</style>
Наконец, укажите стили, как показано в вашем примере:
.myRedPath
{
fillcolor: red;
strokecolor: yellow;
}
Вы можете изменить файл поведения, чтобы добавить поддержку все атрибуты VML.
Можно использовать такой метод для написания библиотеки, которая рисует фигуры с использованием VML или SVG (в зависимости от поддержки браузера) и позволяет стилизовать их с помощью CSS. Поддержка стилей SVG может быть добавлена к объектам VML с помощью такого файла поведения. путем сопоставления каждого стиля SVG с соответствующими атрибутами VML.
person
Gyum Fox
schedule
18.09.2014