2013-06-27 2 views
1

У меня естьCSS инвертный Filer в Chrome

BODY 
{ 
-webkit-filter: invert(100%); 
-moz-filter: invert(100%); 
-ms-filter: invert(100%); 
-o-filter: invert(100%); 
filter: invert(100%); 
} 

и

.jpg 
{ 
-webkit-filter: invert(0%) !important; 
-moz-filter: invert(0%) !important; 
-ms-filter: invert(0%) !important; 
-o-filter: invert(0%) !important; 
filter: invert(0%) !important; 
} 

Это работает в MIE. Chrome настаивает на инвертировании изображений с классом jpg.

Любые предложения?

ответ

3

От Understanding CSS Filter Effects:

Когда браузер загружает веб-страницу, он должен применить стили, выполнить макет, а затем отобразить страницу, так что есть на что посмотреть. Фильтры выходят после всех этих шагов и непосредственно перед копированием страницы на экран. То, что они делают, это сделать снимок отображаемой страницы в виде растрового изображения, затем выполнить некоторую графическую магию на пикселях в снимке, а затем нарисовать результат поверх изображения оригинальной страницы.

Вы применение фильтра к body, и фильтр применяются ко всему элементу как сведенное изображение, а не каждый ребенок элемент по отдельности, так что вы не можете изменить фильтр на ребенке, как вы» re пытающийся сделать.

Что вы можете сделать в вашем случае применяется invert(100%) к селектору вы хотите, чтобы показать, как неинвертированные, так как двойное перевернутое изображение снова становится нормальным.

+0

Спасибо. Вы можете переопределить фильтр для ребенка в MIE, как я уже упоминал. Но если это то, что рекомендует W3C, я не знаю. Я действительно думал о том, чтобы сделать двойную вещь для Chrome. Я попробую это сейчас. –

+0

Да. Это сработало! Большой шаг вперед. :) Это, к сожалению, также перевернуло фотографии профиля в профиле Facebook в Chrome. (Не в MIE). Но это лучше, чем у меня. То, что Facebook Like button вещь практически невозможно настроить в любом случае. –

+0

Мы знаем, почему говорят о -moz-filter и -o-filter, когда, насколько я вижу, в Firefox и Opera нет поддержки фильтра. Просто надежда на то, что может скоро сработать? –

2

Ошибка в первом утверждении. Чтобы исправить это, используйте следующее:

* 
{ 
    -webkit-filter: invert(100%); 
    -moz-filter: invert(100%); 
    -ms-filter: invert(100%); 
    -o-filter: invert(100%); 
    filter: invert(100%); 
} 

.jpg 
{ 
    -webkit-filter: invert(0%) !important; 
    -moz-filter: invert(0%) !important; 
    -ms-filter: invert(0%) !important; 
    -o-filter: invert(0%) !important; 
    filter: invert(0%) !important; 
} 
+0

Я не знал, что может быть таким же, как в CSS. Кроме того, это не сработало для меня. Но ваш ответ заставил меня снова попытаться исправить эту проблему, и теперь она работает во всех браузерах. Благодарю вас. –