2015-01-22 20 views
8

ich CSS wollen Eigenschaft verwenden:Prüfung von CSS "Mix-blend-Modus"

mix-blend-mode: soft-light; 

Und ich werde durch Modernizr für Rückfall bla bla testen ...

Geprüft:

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

Was fehlt mir?

Getestet auf Firefox, CSS seine Arbeit, aber wie mit Modernizr testen?

+0

Bitte sagen, warum -1 und off-topic? – l2aelba

Antwort

11

Verstanden:

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

(oder ohne 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'); 
} 

(oder CSS)

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

} 

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

Kann ich: http://caniuse.com/#feat=css-mixblendmode

3

Modernizr unterstützt dies derzeit nicht. Von Modernizr/issues/1388:

Unfortunatly, "[...] in einigen Browsern, Mix-blend-Modus implementiert wird, die Eigenschaft gültig ist, gehen die automatisierten Tests, aber keine Vermischung tatsächlich erfolgt" - http://blogs.adobe.com/webplatform/2013/09/12/browser-support-matrix-for-css-blending/

+0

:(aha .... Vielen Dank, aber jede Alternative? – l2aelba

+0

@ l2aelba nicht wirklich. Sie könnten einen Test ähnlich dem [Hintergrund-Blend-Modus] (https://github.com/Modernizr/Modernizr/pull/ 1392/dateien), aber Sie wissen immer noch nicht genau, ob der Browser tatsächlich etwas tut. – Stijn

+0

'window.CSS.supports ('Mix-Blend-Modus', 'Soft-Light');'? – l2aelba