Wie können wir die Unterstützung von Css Flex-Box und Flex-Wrap von JavaScript erkennen.
Erstellen Sie ein Element und überprüfen Sie die Stileigenschaft. Wenn es unterstützt wird, gibt es nichts zurück, d. H. ''
, andernfalls wird undefined
zurückgegeben.
Zum Beispiel, wenn Sie den folgenden Code-Schnipsel in Chrome laufen Sie undefined
für columns
und ''
für flex-wrap
bekommen.
Snippet:
snippet.log('flex = ' + document.createElement("p").style.flex);
snippet.log('columns = ' + document.createElement("p").style.columns);
snippet.log('flex-wrap = ' + document.createElement("p").style.flexWrap);
<script src="https://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
Obwohl Sie nur Javascript in Ihrer Frage erwähnt haben, aber es gibt einen CSS-Weg als auch der Feature-Erkennung.
Die @supports
rule, also called CSS Feature Queries.
Sie geben die CSS-Deklaration als Bedingung an, und der Browser führt das aus, um zurückzugeben, ob er unterstützt wird oder nicht. Das folgende CSS wendet beispielsweise eine grüne Hintergrundfarbe an, wenn flex
unterstützt wird.
Die Browser-Unterstützung ist gut unter allen modernen Browsern, abgesehen von IE (wie üblich). Für IE und (Safari < 9) müssen Sie eine Fallback-Option beibehalten, wenn die @supports
Regel fehlschlägt.
die beiden oben genannten Kombination there is an API around that und die Sie in Javascript verwenden können Feature-Erkennung zu tun.
var isColumnSupported = CSS.supports('columns', '');
snippet.log(isColumnSupported);
var isFlexWrapSupported = CSS.supports('flex-wrap', 'wrap');
snippet.log(isFlexWrapSupported);
<script src="https://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
Yep, IE11- und Saf 8- gemäß [caniuse] (http://caniuse.com/#feat=css-featurequeries) (TIL Kanten- und Safari 9 wird) – FelipeAls
Die JS-Methode, die Sie erwähnen, gibt undefined in IE10 zurück, während es unterstützt wird, so scheint dies kein geeigneter Weg, um dies zu erkennen –
Für jetzt verwende ich Ihre Methode, in Kombination mit einem IE10-Check und das scheint gut zu funktionieren. –