2012-03-31 4 views
2

У меня проблема с непрозрачностью div, когда мой сайт просматривается в Internet Explorer. Использование Raphael 2.0 (ООН-минимизирован) Я создаю прямоугольник, используя следующий код:Прозрачность Рафаэля не отображается на IE

var rIn = Raphael("myDiv", "100%", "100%"); 
rIn.rect(0, 0, "100%", "100%").attr({fill:"black", stroke:"none", opacity:0.6}); 

В моих CSS файлах, если у меня есть прозрачные дивы, используя opacity тега, я пишу это включает filter, который, кажется, работает хорошо для IE ,

opacity:0.6; filter: alpha(opacity = 60); 

Однако Рафаэль не появляется, чтобы filter как свойство, так что этот прямоугольник не отображается на всех. Это только проблема для IE - она ​​работает без проблем на FF/Chrome/Safarai на Win/Mac.

ответ

2

filter работает только для IE5-7. Для поддержки IE8, вам нужно это свойство, а также перед тем вашей filter собственности:

-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; 

Это QuirksMode article должен помочь вам.


На самом деле, попробуйте класс:

.opacity60 { 
    opacity: 0.6; 
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; 
    filter: alpha(opacity=60); 
} 

и установить класс вашего прямоугольника к opacity60 через setAttribute('class', 'opacity60') вызова.

+0

Спасибо @Blender. Могу ли я использовать аналогичное свойство для атрибута Raphael? – djq

+0

Добавьте класс к объекту Рафаэля. – Blender

+0

Я объявил класс в своем '.css' и попытался установить атрибуты, используя следующий' rIn.rect.setAttribute ('class', 'opacity60') ', но я получил следующее сообщение об ошибке в IE:' SCRIPT438: Object doesn 't свойство или метод' setAttribute'' – djq

Смежные вопросы