如何将供应商前缀应用于 reactjs 中的内联样式?

IT技术 css reactjs vendor-prefix
2021-04-11 12:48:03

React 中的 CSS 属性不会自动添加其供应商前缀。

例如,与:

<div style={{
    transform: 'rotate(90deg)'
}}>Hello World</div>

在 Safari 中,不会应用旋转。

我如何做到这一点?

4个回答

React 不会自动应用供应商前缀。

为了添加供应商前缀,请按照以下模式命名供应商前缀,并将其添加为单独的props:

-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',
    ]
  }
};
请注意,与大写的 webkit 前缀不同,ms 前缀应该是小写的:zhenyong.github.io/react/tips/inline-styles.html
2021-05-31 12:48:03

我没有使用 react.js 的经验,但请查看 Lea Verou 的这个 js 库。它直接在 DOM 中添加样式前缀。

http://leaverou.github.io/prefixfree/

prefixfree 很棒,只要确保在您的页面内容更新时重新调用 window.StyleFix.process() (例如路由器导航回调)
2021-06-20 12:48:03

你可以使用这样的东西:

https://github.com/cgarvis/react-vendor-prefix

自动为您的样式对象添加供应商前缀。

我实际上遇到了同样的问题,并且没有一个react前缀库可以完成我想要的工作。所以我自己建了一个:

react前缀

它仍然很年轻(今天早上建成),但我会维护它。希望它有帮助。