2015-01-22 14 views
8

voglio usare la proprietà di CSS:test di CSS "mix-mix-mode"

mix-blend-mode: soft-light; 

E mi metterà alla prova da Modernizr per fallback bla bla ...

Testato:

Modernizr.mixblendmode //undefined 
Modernizr.testProp('mixblendmode'); //false 
Modernizr.addTest('mixblendmode'); // no-mixblendmode 

che cosa mi manca?

Testato su Firefox, CSS il suo lavoro, ma come prova con Modernizr?

+0

Si prega di dire il motivo per cui -1 e fuori tema? – l2aelba

risposta

11

capito:

Modernizr.addTest('mix-blend-mode', function(){ 
    return Modernizr.testProp('mixBlendMode'); 
}); 

(o senza Modernizr)

if('CSS' in window && 'supports' in window.CSS) { 

    var support = window.CSS.supports('mix-blend-mode','multiply'); 

    /* Add class like Modernizr */ 
    /* -- jQuery -- */ 
    $('html').addClass(support?'mix-blend-mode':'no-mix-blend-mode'); // jQuery 
    /* -- Pure JS -- */ 
    document.getElementsByTagName('html')[0].className += support ? ' mix-blend-mode' : ' no-mix-blend-mode'; 
    /* -- Pure JS (IE9+) -- */ 
    document.querySelector('html').classList.add(support ? 'mix-blend-mode' : 'no-mix-blend-mode'); 
} 

(o CSS)

@supports(mix-blend-mode:multiply) { 

} 

Rif: https://dev.opera.com/articles/getting-to-know-css-blend-modes/

Posso usare: http://caniuse.com/#feat=css-mixblendmode

3

Modernizr non supporta questo momento. Da Modernizr/issues/1388:

Purtroppo, "[...] in alcuni browser, è implementato mix-mix-mode, la proprietà è valida, i test automatizzati passano, ma nessuna fusione effettivo impiego hanno luogo" - http://blogs.adobe.com/webplatform/2013/09/12/browser-support-matrix-for-css-blending/

+0

:(aha .... grazie mille, ma qualsiasi alternativa? – l2aelba

+0

@ l2aelba non proprio. Si potrebbe creare un test simile a [background-blend-mode] (https://github.com/Modernizr/Modernizr/pull/ . 1392/file), ma ancora non si sa con certezza se il browser in realtà fa qualcosa – Stijn

+0

'window.CSS.supports ('mix-mix-mode', 'soft-light');?' – l2aelba