React JS 和 css 伪元素 ::after ::before

React JS and css pseudo element ::after ::before

作为 React 初学者,我目前正在努力使用伪元素 ::after 和 ::before 渲染样式化组件。

这是按钮的 sass 样式:https://jsfiddle.net/r8qwhfvx/ 这是我在 React 中尝试实现的目标:使用伪元素更改悬停按钮的样式。

但是如何在按钮组件的className中使用::after / ::before呢? JSX 语法无法在组件类名中使用 ::after / ::before。

我只能写这个:

return(
    <button className='infoBtn'></button>
);

请检查 jsfiddle link。

className JSX属性是一个字符串变量,会被设置为class属性HTML 元素在 React 渲染时的值。 CSS 伪元素可以出现在 CSS 代码中,而不是作为 HTML 元素的 class 名称。

因此您需要使用 className JSX 属性为您的按钮指定一个 class 名称,然后为此 class 定义 CSS 规则。为此,您需要选择一个策略来在您的 React 应用程序中设置 CSS。有多种解决方案:

通过所有这些选项,您将能够使用 CSS 伪元素。对于 SASS,您可能必须设置一个 CSS 预处理器。如果您使用的是 create-react-app (https://create-react-app.dev/docs/adding-a-sass-stylesheet/) or styled-components (https://styled-components.com/docs/faqs#can-i-nest-rules) 就可以了,它是内置的。对于样式化组件,我不确定它是否是真正完整的 SASS 支持.

祝你好运!