Mi piace molto il modo in cui React purifica gli eventi per te, quindi sono stato sorpreso di non aver prefisso gli stili CSS anche per il tuo!Prefixing per gli stili di flexbox per React
In ogni modo, ho iniziato a implementare la mia prefixer di base come questo:
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;
};
Ma poi ho realized a big problem, Reagire utilizza un oggetto per gli stili e come prefisso adeguatamente il FlexBox, è necessario anteporre i valori, non il proprietà. Così, non riesco a comprendere tutte le seguenti stili allo stesso tempo:
.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+ */
}
Delle idee come ottenere intorno a questo?
La funzionalità di stile in linea è limitata oggi. Suggerirei semplicemente di usare una classe tradizionale/'className' in queste istanze. – WiredPrairie
Oppure puoi rilevare le versioni del browser, ma le classi sono probabilmente la strada da percorrere. – FakeRainBrigand
ah, capisco. Speravo di eliminare definitivamente i preprocessori CSS e CSS – Chet