@@Gunnar:
nuqneH
... trotzdem halte ich "diesen Weg" der Mozilla Entwickler für "nicht ganz so ideal", um es mal vorsichtig auszudrücken. Und ich hoffe sehr, dass sie in Zukunft nicht auch bei anderen Features auf so eine Idee kommen!
Auch Blink (Chrome/Chromium/Opera(?)) geht diesen Weg – bei allen Features.
Ich glaube, hier haben wir uns missverstanden ... ;-)
Ich sprach nicht von "Vendor Prefixes" (die sind auch eine Seuche, aber egal), sondern davon, dass das Verhalten des Browsers von seiner Konfiguration beeinflusst wird, *ohne* dass man dies dann noch *ohne* Javascript entsprechend "steuern" kann.
Also wie hier in dem konkreten Fall:
Per Default ist 'layout.css.flexbox.enabled' = false, d.h. Firefox verwendet die alte Flexbox Syntax. Diese hat u.a. den Bug, dass man für die Box-Elemente keine Prozentwerte verwenden kann. Und ohne die Angabe einer "bestimmten" Breite funktioniert Flexbox dann nicht wie gewünscht.
Wenn ein User diese Einstellung aber nun aktiviert, und FF somit die neue Flexbox Syntax verwendet, führt genau diese vorher zwingend erforderliche Angabe einer Breite (mit einer anderen Einheit als Prozent) dazu, dass die neue Flexbox "nicht funktioniert".
Per CSS hast du aber bei ein und derselben Browserversion keine Chance, dies zu unterscheiden.
Einzig Mathias Tipp mit dem Javascript à la:
if(!!window.sidebar && typeof document.body.style.flex != 'undefined') alert("layout.css.flexbox.enabled = true");
schafft hier Abhilfe.
Gruß Gunther