Ich mag es wirklich, wie React Ereignisse für Sie reinigt, so dass ich überrascht war, dass sie nicht Ihre CSS-Stile für Sie auch Präfix!Prefixing Flexbox Stile für React
Anyways, ich begann meine eigene Grund prefixer wie diese Umsetzung:
var prefixes = ["ms", "Moz", "Webkit", "O"];
var properties = [
'userSelect',
'transform',
'transition',
'transformOrigin',
'transformStyle',
'transitionProperty',
'transitionDuration',
'transitionTimingFunction',
'transitionDelay',
'borderImage',
'borderImageSlice',
'boxShadow',
'backgroundClip',
'backfaceVisibility',
'perspective',
'perspectiveOrigin',
'animation',
'animationDuration',
'animationName',
'animationDelay',
'animationDirection',
'animationIterationCount',
'animationTimingFunction',
'animationPlayState',
'animationFillMode',
'appearance',
'flexGrow',
];
function vendorPrefix(property, value) {
var result = {}
result[property] = value
if(properties.indexOf(property) == -1){
return result;
}
property = property[0].toUpperCase() + property.slice(1);
for (var i = 0; i < prefixes.length; i++) {
result[prefixes[i] + property] = value;
};
return result;
}
React.prefix = function(obj) {
var result = {};
for(var key in obj){
var prefixed = vendorPrefix(key, obj[key])
for(var pre in prefixed){
result[pre] = prefixed[pre]
}
}
return result;
};
Aber dann habe ich realized a big problem, Reaktion verwendet ein Objekt für Stile und in geeigneter Weise die Flexbox Präfix, müssen Sie die Werte Präfix, nicht die Eigenschaften. So kann ich nicht alle der folgenden Arten zur gleichen Zeit ist:
.page-wrap {
display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */
display: -moz-box; /* OLD - Firefox 19- (buggy but mostly works) */
display: -ms-flexbox; /* TWEENER - IE 10 */
display: -webkit-flex; /* NEW - Chrome */
display: flex; /* NEW, Spec - Opera 12.1, Firefox 20+ */
}
Irgendwelche Ideen, wie dies zu umgehen?
Die Inline-Style-Funktionalität ist heute begrenzt. Ich würde vorschlagen, nur eine traditionelle Klasse/className in diesen Fällen zu verwenden. – WiredPrairie
Oder Sie können die Browser-Versionen erkennen, aber Klassen sind wahrscheinlich der Weg zu gehen. – FakeRainBrigand
ah, ich verstehe. Ich hatte gehofft, CSS- und CSS-Präprozessoren endlich abschaffen zu können – Chet