Свойства CSS в React не добавляются автоматически с префиксами поставщиков.
Например, с:
<div style={{
transform: 'rotate(90deg)'
}}>Hello World</div>
В Safari вращение не применялось.
Как мне добиться этого?
Свойства CSS в React не добавляются автоматически с префиксами поставщиков.
Например, с:
<div style={{
transform: 'rotate(90deg)'
}}>Hello World</div>
В Safari вращение не применялось.
Как мне добиться этого?
React не применяет префиксы поставщиков автоматически.
Чтобы добавить префиксы вендора, назовите префикс вендора в соответствии со следующим шаблоном и добавьте его как отдельный реквизит:
-vendor-specific-prop: 'value'
становится:
VendorSpecificProp: 'value'
Итак, в примере в вопросе это должно стать:
<div style={{
transform: 'rotate(90deg)',
WebkitTransform: 'rotate(90deg)'
}}>Hello World</div>
Префиксы значений не могут быть выполнены таким образом. Например, этот CSS:
background: black;
background: -webkit-linear-gradient(90deg, black, #111);
background: linear-gradient(90deg, black, #111);
Поскольку у объектов не может быть повторяющихся ключей, это можно сделать, только зная, какие из них поддерживает браузер.
Альтернативой может быть использование Radium для набора инструментов для стилей. Одной из его функций является автоматическое добавление префиксов поставщиков.
Наш фоновый пример с радием выглядит так:
var styles = {
thing: {
background: [
'linear-gradient(90deg, black, #111)',
// fallback
'black',
]
}
};
У меня нет опыта работы с react.js, но посмотрите на эту js-библиотеку от Lea Verou. Он добавляет префикс стиля непосредственно в DOM.
http://leaverou.github.io/prefixfree/
Вы можете использовать что-то вроде этого:
https://github.com/cgarvis/react-vendor-prefix
для автоматического добавления префикса поставщика к вашим объектам стиля.
На самом деле я столкнулся с той же проблемой, и ни одна из библиотек реактивных префиксов не выполнила ту работу, которую я хотел. Поэтому я построил один сам:
Он еще довольно молодой (построил его сегодня утром), но я буду поддерживать его. Надеюсь, это поможет.