使用CSS转换:使用ReactJS翻译(...)

时间:2015-09-17 15:49:12

标签: reactjs css-transforms

根据https://facebook.github.io/react/tips/inline-styles.html

CSS样式需要作为对象传递给组件。但是,如果您尝试使用转换样式,则会出现错误。

5 个答案:

答案 0 :(得分:24)

翻译也不适合我。我通过添加' px'来修复它。 var后面

ES6代码:

render() {
    const x = 100;
    const y = 100;
    const styles = { 
        transform: `translate(${x}px, ${y}px)` 
    };

    return (
        <div style={styles}></div>
    );
}

答案 1 :(得分:9)

我的解决方案是首先连接字符串,然后将其传递给对象。注意这里使用'px'。

render: function() {

    var cleft = 100;
    var ctop = 100;
    var ctrans = 'translate('+cleft+'px, '+ctop+'px)';
    var css = {
        transform: ctrans 
    }

    return ( 
        <div style={css} />
    )
}

答案 2 :(得分:0)

如果上述解决方案不起作用,您还可以尝试以其他方式设置转换格式:

render() {
    const xPx = 50;
    const yPercent = 50;
    return <div style={{transform: `translateX(${xPx}px) translateY(${yPercent}%)`}}></div>
}

答案 3 :(得分:0)

您可以将translate用作属性,从而在不指定transform的情况下提供所有转换

style={{
  position: "fixed",
  bottom: "0px",
  left: "50%",
  maxWidth:'450px',
  zIndex: 1,
  translateX:'-50%'
}}

答案 4 :(得分:0)

这可以使用字符串模板文字 ` 作为转换键的值来完成:

const styles = {
logo: {
    transform: `translateX(20px)`
},

function Navbar() {
    return (
        <nav style={styles.nav}>
            <div style={styles.wrapper}>
                <p className="logo" style={styles.logo}>Hello</p>
            </div>

有关模板文字的更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals