简体   繁体   中英

Contrast overload using CSS3 grayscale filter in Safari 6

Using CSS3 grayscale filter for portfolio images. Looks great in Chrome, Firefox, Safari 7, and iOS.

Image-Chrome 30: Chrome 30 http://pikku.co/test/chrome-hover.png

Image-Firefox 24: Firefox 24 http://pikku.co/test/firefox-hover.png

Contrast overload in Safari 6. Grays are completely blown out and black is oversaturated.

Image-Safari 6: Safari 6 http://pikku.co/test/safari-hover.png

Code:

img.grayscale {
    /* Firefox 10+ */
    filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale");
    /* IE6-9 */
    filter: gray;
    /* Chrome 19+ & Safari 6+ */
    -webkit-filter: grayscale(100%);
    /* Fade to color for Chrome and Safari */
    -webkit-transition: all .6s ease;
    /* Fix for transition flickering */
    -webkit-backface-visibility: hidden;
}

img.grayscale:hover {
    filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'1 0 0 0 0, 0 1 0 0 0, 0 0 1 0 0, 0 0 0 1 0\'/></filter></svg>#grayscale");
    -webkit-filter: grayscale(0%);
}

Adding a contrast filter, -webkit-filter: contrast(.5) , cancels out grayscale effect. Any ideas about how to control contrast in Safari 6?

Demo site: flowmedia.dk

只需合并过滤器:

-webkit-filter: grayscale(100%) contrast(.5);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM