множественное выражение css IE

#css #internet-explorer #css-expressions

#css #internet-explorer #css-выражения

Вопрос:

Я хочу применить фильтр отбрасывания тени, только если тип ввода — Checkbox. Работает следующее

 input {     
    filter: expression("progid:DXImageTransform.Microsoft.Alpha(opacity=100)");
}
  

Однако я хочу включить в него this.type ==’checkbox’. Что-то вроде этого

 input {
    filter: expression(this.type=='checkbox' ? "progid:DXImageTransform.Microsoft.Alpha(opacity=100)":"");
}
  

Это не работает.

Комментарии:

1. Не являются ли они устаревшими и прекращены в IE8?

2. У меня это работает в IE8, с установленным режимом сравнения или без него.

Ответ №1:

Вы должны использовать только expression если нет другого выбора.

Попробуйте это вместо:

 input[type="checkbox"] { 
    filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);
}
  

Для этого используется селектор атрибутов.

Вы также сказали, что пытаетесь применить отбрасываемую тень — вам придется изменить этот Alpha фильтр на DropShadow тот.

Комментарии:

1. К сожалению, мы не используем doctype, чтобы иметь возможность использовать селектор атрибутов css.

2. Ах. Режим причуд — это проблема. Я подумаю и посмотрю, смогу ли я предложить альтернативу или способ исправить ваш исходный фрагмент.