css - 如何在 React 中将多个浏览器特定值添加到 CSS 样式中?

标签 css browser reactjs cross-browser

这主要是为给定的 CSS 属性定义浏览器特定值,例如:

<div style="cursor: -moz-grab; cursor: -webkit-grab; cursor: grab;">Grab me!</div>

如果我把它包装成这样的对象:

<div style={{
    cursor: "-moz-grab",
    cursor: "-webkit-grab",
    cursor: "grab"
}}>Grab me!</div>

然后你复制一个对象中的键(在严格模式下会失败,否则会被覆盖)。简单地将所有值放入单个字符串似乎也不起作用。

用 JS 找出浏览器然后应用正确的值似乎工作量太大了。或者是否有不同的方法来做到这一点?有什么想法吗?

最佳答案

如果您想使用内联样式并获得供应商前缀,您可以使用像Radium 这样的库。为您提取供应商前缀。

通过向您的组件添加一个 @Radium 装饰器,Radium 将 Hook 您传递给该组件的样式并自动管理它们并为其添加前缀。

var Radium = require('radium');
var React = require('react');

@Radium
class Grabby extends React.Component {
  render() {
    return (
      <div style={style}>
        {this.props.children}
      </div>
    );
  }
}

var style = {
  cursor: "grab" // this will get autoprefixed for you!
};

关于css - 如何在 React 中将多个浏览器特定值添加到 CSS 样式中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36522413/

相关文章:

javascript - 在 document.ready() 之前获取 HTML 标签,在 DOM 渲染之前

javascript - 在 react 或 react-native 中处理渲染函数中的多个返回的正确方法是什么

c# - System.Windows.Forms.WebBrowser 不运行 Javascript

html - 什么时候应该在新标签/窗口中打开链接?

reactjs - 使用 Jest 和 Enzyme 测试基于 ContextAPI 数据的组件的条件渲染

javascript - 使用 React Router v6 渲染 React 组件变量

css - Wordpress 主题改变样式表的顺序

html - CSS <hr> 在文本旁边右对齐

css - 用 float : right 堆叠两个 DIV

css - 容器 div 在 IE 中扩展为 100%,我不希望它扩展