Reactjs可以以编程方式处理:before吗?

Hao*_*Hao 4 css less reactjs

不知何故,我必须以编程方式设置的宽度:beforediv

<div className="something" style={someStyle}> </div>
Run Code Online (Sandbox Code Playgroud)

我如何定义someStyle,这样的宽度:before.something``div可发生相应的变化?

小智 11

是的,您可以在反应中以编程方式更改 ::before、::after 等伪元素的值。

这是一个技巧。

应用程序.js

const widthVar = 34;
const someStyle = {
     "--width": widthVar
}
<div className="something" style={someStyle}> </div>
Run Code Online (Sandbox Code Playgroud)

样式文件

.something:before{
      width: var(--width),
      // remaining code
}
Run Code Online (Sandbox Code Playgroud)

  • 如果您使用的是 Typescript,则需要先从 React 扩展 CSSProperties 类型,然后才能访问变量以使其工作。请参阅/sf/answers/4617157331/ (2认同)

Ros*_*len 5

伪元素不能使用内联样式设置样式,如/sf/answers/989927501/中所述。您将必须something在样式表中使用.something:before选择器。这不是React的限制,而是HTML + CSS的设计选择。

如果您需要以编程方式更改伪:before元素的宽度,则它可能更适合作为React渲染的常规DOM元素。