2013-05-01 2 views
5

Мне интересно, можно ли применить оттенок к непрозрачности в css?CSS - Тонированная непрозрачность

У меня есть PNG различных размеров. Когда пользователь нависает над PNG, я хочу, чтобы PNG изменял непрозрачность до 0,5 с оттенком # 000. Согласно w3schools, у вас есть возможность изменять значение непрозрачности, а не оттенок, который всегда установлен на #FFF.

Я попытался установить черный ящик с его непрозрачностью, установленным поверх моего PNG, и через css он переключился между display:none/block; при наведении PNG. Это не сработало, поскольку мои PNG не являются прямоугольными изображениями и имеют различные размеры, что означает, что черный ящик не покрывает только мой PNG.

Есть ли альтернативные решения проблемы?

+9

"По W3Schools" - остановка прямо там. – lifetimes

+0

@ Zenith - Вы имеете в виду, что w3schools не является надежным источником или нет другой альтернативы? – Jon

+0

@Jon Они - один из худших ресурсов во всемирной паутине –

ответ

7

Webkit пример: http://jsfiddle.net/5APXu/1/

div:hover { opacity: .5; -webkit-filter: grayscale(100%) sepia(100%); } 

Это использует CSS filter property, который начинает gain support. Возможны многочисленные эффекты, поэтому вы можете, вероятно, достичь своего первоначального желания черного/серого оттенка.

+0

Отлично. Спасибо :) – Jon

+0

Нет проблем. Имейте в виду, что поддержка браузера не завершена, но вы можете использовать старые фильтры IE в качестве резервной копии и/или также рассматривать фильтры SVG (которые уже имеют больше поддержки браузера). Зависит от того, сколько усилий вы хотите внести в него. –

+0

Будет ли это работать на FireFox/IE9 +? – Jon

1

Вы можете применить цвет фона к изображению при наведении, чтобы получить необходимый эффект. Вот пример: http://jsfiddle.net/atbnn

img:hover { 
    opacity: 0.5; 
    background: #000; 
} 
Смежные вопросы