Modify element :before CSS rules programmatically in React

后端 未结 1 680
心在旅途
心在旅途 2020-12-03 20:07

I have an element whose :before style has to be modified based on calculations.

export class Content extends React.Component {
    render() {
           


        
相关标签:
1条回答
  • 2020-12-03 20:36

    You can iterate document.styleSheets, set .style of .cssRules where .selectorText matches pseudo selector

    let sheets = document.styleSheets;
    let selector = "div::before";
    let replacementContent = '"after"';
    for (let sheet of sheets) {
      for (let rule of sheet.cssRules) {
        if (rule.selectorText === selector) {
          rule.style["content"] = replacementContent;
        }
      }
    }
    div:before {
      content: "before";
      color: red;
      font-weight: bold;
      text-align: center;
      text-shadow: 2px 2px 2px #000;
      background: green;
      width: 50px;
      height: 50px;
      display: block;
    }
    <div></div>

    0 讨论(0)
提交回复
热议问题