Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Рисунок в ИЕ (https://javascript.ru/forum/css-html-internet-explorer/29916-risunok-v-ie.html)

yambbkru 17.07.2012 01:24

Рисунок в ИЕ
 
Здравствуйте. Я новичок в javascript. Вот пытаюсь в целях обучения нарисовать прямоугольник в ИЕ. Делаю так:
document.namespaces.add('v', 'urn:schemas-microsoft-com:vml', '#default#VML');
document.createStyleSheet().cssText = 'v\:*{behavior:url(#default#VML)}';
var a = document.createElement("v:group");
a.style.width = "200px";
a.style.height = "300px";
var b = document.createElement("v:rect");
b.style.width = "100px";
b.style.height = "50px";
b.strokecolor = "#000000";
b.fillcolor = "#ffffff";
a.appendChild(b);
document.body.appendChild(a);

Но оно не работает. Ошибок не выдает. Просто нет никакой реакции. Помогите найти ошибку. Альтернативные варианты рисования прямоугольника в ИЕ прошу не предлагать.

devote 17.07.2012 02:24

document.createStyleSheet().cssText = 'v\\:group,v\\:rect{behavior:url(#default#VML)}';
Здесь нужно явно указывать названия тегов, либо вставлять стиль через тег style.

Цитата:

Сообщение от yambbkru
document.namespaces.add('v', 'urn:schemas-microsoft-com:vml', '#default#VML');

и тут третий параметр не нужен.. Иначе у вас совсем не те фигуры рисоваться будут.

yambbkru 17.07.2012 21:55

А вы можете исправить как надо? Пожалуйста, очень прошу!

devote 17.07.2012 22:07

document.namespaces.add('v', 'urn:schemas-microsoft-com:vml' );
document.createStyleSheet().cssText = 'v\\:group,v\\:rect{behavior:url(#default#VML)}';
var a = document.createElement("v:group");
a.style.width = "200px";
a.style.height = "300px";
var b = document.createElement("v:rect");
b.style.width = "100px";
b.style.height = "50px";
b.strokecolor = "#000000";
b.fillcolor = "#ffffff";
a.appendChild(b);
document.body.appendChild(a);

yambbkru 17.07.2012 22:38

Спасибо вам огромное! Теперь разобралась.

yambbkru 18.07.2012 15:57

А как обстоит дело с разрешением в ИЕ? Я создаю 2 фигуры с одинаковыми параметрами: одну - в ИЕ с использованием VML, а вторую - в нормальном браузере :) с использованием SVG и в ИЕ рисунки получаются чуть ли не в половину меньше да еще и не растянуты вширь! Как нужно задавать координаты, что было одинаково визуально и там, и там?

yambbkru 18.07.2012 18:41

Уже разобралась :) Если кому нужно: в канвы v:group есть свойство coordsize в котором по умолчанию стоят размеры 1000 на 1000 и относительно них потом высчитываются размеры всех элементов. Нужно тут сразу при создании задать нужные размеры.


Часовой пояс GMT +3, время: 10:51.