Flex-Wrap-Unterstützung in Browsern erkennen

7

Ich arbeite an einem Projekt, in dem ich ein reaktionsfähiges Raster habe, das ich mit Flex-Wrap-Eigenschaft erreicht habe. Da ich IE9 und niedrigere Versionen von Firefox, Version 28 und darunter unterstütze, wie finde ich heraus, durch Javascript, die Unterstützung für die gleichen. Momentan konnte ich den IE9-Browser nur durch eine bedingte Aussage identifizieren, aber jetzt weiß jemand, wie man für Firefox ältere Versionen durch Javascript erkennt.

    
rahulinaction 05.11.2014, 15:48
quelle

4 Antworten

10

Ich weiß nicht, wie Sie es jetzt tun, aber es gibt wirklich keinen Grund, das Rad neu zu erfinden.

Modernizr ( Ссылка ) wurde dafür gebaut und ist eine weit verbreitete Bibliothek für die Feature-Erkennung. Mit Blick auf die CSS-Funktionen unterstützen sie die Erkennung von Flexbox ( Ссылка ) und funktionieren bis zu IE6.

    
AndrewTet 05.11.2014, 22:56
quelle
28

Ich fand, dass dies die einfachste Methode ist:

%Vor%

Ich habe hasOwnProperty auch versucht, aber es funktioniert nicht in IE und FF. Warum also 40 KB modernisz verwenden, wenn Sie nur 3 Zeilen js haben können?

    
Alex 20.11.2014 19:35
quelle
8

CSS-Eigenschaftserfassungen

Eine einfache CSS-Eigenschaftserkennungstechnik besteht darin, sie direkt auf einem Element zu testen und zu überprüfen, ob% ce_de% wie folgt zurückgegeben wird,

undefined .

Einfachste Methode (aber begrenzte Unterstützung)

Die obige Methode prüft direkt auf die Eigenschaft und sollte für die gängigsten Eigenschaften (nicht für flex-wrap) ausreichen.

%Vor% %Vor%

Sie können etwas mehr Code hinzufügen, um zu überprüfen, ob die Eigenschaft mit den dom-Präfixen

unterstützt wird

Etwas umfangreich für besseren Halt (funktioniert für Flex-Wrap)

%Vor% %Vor%

Es wird wirklich kompliziert, wenn Sie sich dazu entschließen, das für jede Eigenschaft in allen Browsern zu verallgemeinern. Hier entscheiden wir uns für element.style.<propertyName> != undefined , das die Unterstützung für die Behandlung von Ausnahmefällen erweitert hat.

CSS.supports

Es gibt eine neue CSS-API modernizr , die einen booleschen Wert zurückgibt um zu überprüfen, ob eine bestimmte CSS-Funktion vom Browser unterstützt wird. Dies ist jedoch eine neue API, daher verwenden wir immer noch Plugins wie CSS.supports , bis eine Unterstützung für einen älteren Browser benötigt wird.

Fazit:

Verwenden Sie die einfachste Stilerkennung modernizr oder mit element.style.<property> != undefined , wenn Ihre Anforderung einfach ist. Sie können es immer ein bisschen mehr als Ihre Notwendigkeit anpassen, aber wenn es kompliziert und umfangreich ist, gehen Sie für domPrefixes , die Code für Feature-Erkennung erweitert hat.

    
Selvakumar Arumugam 18.11.2014 17:09
quelle
3

Erweitern Sie die Antwort von @ AndresTet, wenn Sie keinen vollständigen Build modernizr möchten, können Sie ein gewöhnen Sie sich , oder extrahieren und refaktorieren Sie die relevanten Flexbox-Tests, die wie folgt aussehen:

%Vor%     
epoch 18.11.2014 14:13
quelle

Tags und Links