如何在 reactjs 中使用伪元素作为内联样式? [复制]

Posted

技术标签:

【中文标题】如何在 reactjs 中使用伪元素作为内联样式? [复制]【英文标题】:How to use pseudo elements in reactjs as inline styling? [duplicate] 【发布时间】:2021-10-13 16:11:43 【问题描述】:

这里从道具中获取图像,我必须将该图像作为特定元素的背景图像。我使用样式组件实现了这一点。但是在我的应用程序中,我们没有在任何地方使用样式化组件,所以我尝试使用内联样式来实现这一点。因为它是动态的,所以我们不能或可能无法将此图像传递给 CSS 文件。

这是我使用样式组件的方法,无论如何要使用内联样式更改它,请帮助我,谢谢

样式化组件

const BannerImage = styled.div`
  &::after 
    background: url($(props) => props.image) no-repeat;
    content: '';
    background-size: cover !important;
    background-position: center center !important;
    right: 0;
    height: 100%;
    position: absolute;
    left: 0;
  
  @media (min-width: 992px) 
    &::after 
      right: calc((-1%) - ((100vw - 992px) / 2));
    
  
`;

元素使用了样式化组件

<BannerImage
      image=image
      className="col-lg-6 col-md-16 col-sm-12 col-12 h-100 d-flex"
 />

【问题讨论】:

***.com/questions/28269669/… 这可能会有所帮助 【参考方案1】:

虽然您不能使用内联样式直接设置伪元素的样式,但您可以设置 CSS 变量。你能用它作为传递背景图片 url 的一种方式吗?

例如

   const myElement = document.querySelector('.myElement');
    myElement.style.setProperty('--bgurl', 'URL(' + the URL + ')');

在 CSS 中

.myElement::after 
  background-image: --bgurl;

【讨论】:

【参考方案2】:

对于背景色、颜色等简单样式,可以直接使用内联样式,无需任何库。

但是对于伪类、伪元素和媒体查询,你必须使用一个库来实现内联样式。

有一个名为 Radium https://github.com/FormidableLabs/radium 的库可以在 React 中提供帮助。

【讨论】:

以上是关于如何在 reactjs 中使用伪元素作为内联样式? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将供应商前缀应用于 reactjs 中的内联样式?

初学者:使用 CSS 伪元素设计 ReactJS 复选框

Reactjs - 正确设置内联样式

有没有一种方法可以动态添加伪元素 css 作为内联 css

使用 ReactJS 生成内联字体大小样式

使用 ReactJS 的跨浏览器 flexbox 内联样式