CSS-выражения против фильтров и Javascript для Internet Explorer - PullRequest
2 голосов
/ 29 января 2011

В чем разница между выражениями CSS и фильтрами CSS?

Как плохо для скорости страницы?

Если что-то может быть достигнуто в чистом CSS в других браузерах, но для IE возможно только посредством выражений CSS или CSS-фильтров или Javascript Тогда мы должны всегда идти за Javascript, если речь идет о скорости страницы.

Будет ли Javascript работать быстрее, чем CSS Filter или Expression решение?


Обновление после ответа Пекки

ОК, поэтому CSS-выражений следует избегать, это понятно.

Теперь я хочу знать о фильтрах

Пример фильтров

#myElement {
    opacity: .4; /* other browsers */
    filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40); /* this works in IE6, IE7, and IE8 */
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=40)"; /* this works in IE8 only */
}

Для получения прозрачности PNG в IE6 и некоторого эффекта CSS 3 в IE 6,7,8 Мы можем использовать CSS IE Filters

http://www.smashingmagazine.com/2010/04/28/css3-solutions-for-internet-explorer/

и есть также несколько альтернатив Javascript.

Будет ли Javascript работать быстрее, чем CSS Filter?

Примечание: Недопустимое свойство filter CSS

Ответы [ 2 ]

1 голос
/ 29 января 2011

В более старых версиях IE, если у вас есть выбор использовать фильтр CSS или выражение CSS, этот фильтр - лучший выбор.

Однако я не могу вспомнить ни одного сценария, в котором выиметь выбор фильтра или выражения.

Вы должны отдавать предпочтение простому Javascript над выражениями, потому что выражения оцениваются постоянно , например, на mousemove.С простым Javascript вы можете контролировать, когда выполняется код, например, onload или onresize.

См. Документ Google по теме :

CSS-выражения ухудшают производительность рендеринга;замена их альтернативами улучшит визуализацию браузера для пользователей IE.

Примечание. Эти рекомендации в этом разделе относятся только к Internet Explorer 5-7, которые поддерживают выражения CSS.Выражения CSS не поддерживаются в Internet Explorer 8 и не поддерживаются другими браузерами.


Вещи, для которых используются фильтры в IE, часто не имеют возможности заменить их.

Вместо этого нет способа «использовать Javascript», потому что Javascript просто будет динамически применять фильтр.Это касается прозрачности и обходного пути фильтра градиента rgba.


В ответ на ваши изменения:

, а также есть некоторые Javascriptдоступна альтернатива.

Будет ли Javascript работать быстрее, чем CSS Filter?

В статье , на которую вы ссылались, ни один из обходных путей не имеет решения filter и решение Javascript (те, которые просто применяют один и тот же filter автоматически, для удобства).

0 голосов
/ 29 января 2011

Если вы имеете в виду CSS-выражения IE6, вы должны полностью отбросить их и использовать jQuery.

CSS-выражения IE

  • Используется только в IE до 7
  • Был прекращен Microsoft
  • Ничего не добьется того, что jQuery не может сделать, это просто немного удобнее
  • Согласно это раньше требовалось включить JavaScript
  • В заключение, это была плохая идея.
...