在 React 组件中使用 css/scss 变量作为内联样式

Posted

技术标签:

【中文标题】在 React 组件中使用 css/scss 变量作为内联样式【英文标题】:Use css/scss variable in React component as inline style 【发布时间】:2019-08-04 04:41:12 【问题描述】:

有没有有效的方法在 React 组件中使用 SCSS 或 CSS 变量作为内联样式?

我想在下面做这样的事情

scss

$red: #F65959;


:root 
  --red: $red;    

js

const style = 
  color: '--red',
;

export default style;

【问题讨论】:

【参考方案1】:

如果要使用css custom properties应该是这样的

:root 
  --red: #$red;

const style = 
  color: 'var(--red)',
;

【讨论】:

【参考方案2】:

它可以工作,但如果你想在内联样式中使用它,你需要将变量提供给var()

示例

function App() 
  const style = 
    color: "var(--red)"
  ;
  return <div style=style>Foo</div>;


ReactDOM.render(<App />, document.getElementById("root"));
:root 
  --red: #F65959;    
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>

<div id="root"></div>

【讨论】:

以上是关于在 React 组件中使用 css/scss 变量作为内联样式的主要内容,如果未能解决你的问题,请参考以下文章

空样式 (.css/.scss) 文件

React 开发工具将我的组件显示为未知

如何将 CSS/SCSS 与 Vue 组件文件保持一致

在 React 路由器 5 中使用变量(不是静态组件)将道具传递给组件

如何在我的 React 组件中使用 SCSS 变量

在 React 组件中使用的字符串变量中插入 html