javascript - 如何使用 Styletron 为带有伪类的伪元素设置样式

标签 javascript css jss styletron

在尝试向按钮添加 Material 设计波纹动画时,我采用了纯 css 实现 here并使用它。

但现在我们正在迁移到 Styletron .我如何重新创建这个

.ripple-class {
  /* props */
}

.ripple-class:after {
  /* props */
}

.ripple-class:active:after {
  /* props */
}

在 styletron 中?这个我试过了

injectStyles(styletron, {
  // ripple-class props
  ':after': {
    // :after props
  },
  ':active:after': {
    // more props
  }
});

injectStyles(styletron, {
  // ripple-class props
  ':after': {
     // :after props
  },
  ':active': {
    ':after': {
       // more props
    }
  }
});

按钮没有动画。如果我只是将实际的 css 放在样式标签中,它就可以正常工作。

最佳答案

您尝试的第一个应该可以工作,但是您必须将 content 属性用引号括起来,否则它在生成的 CSS 中没有值(以及整个 : after pseudo 被 CSS 忽略,因为 content 属性的值错误):

injectStyles(styletron, {
    // ripple-class props
    ':after': {
        content: '""',                  // '""' (literally "") is the value not '' (literally nothing)
        // :after props
    },
    ':active:after': {
        content: '""',
        // more props
    }
});

因为 ':after': { content: '' } 会导致 CSS 看起来像这样 :after { content: } 这是错误的。

':after': { content: '""' } 将导致 CSS 看起来像这样 :after { content: ""} 这是正确的.

关于javascript - 如何使用 Styletron 为带有伪类的伪元素设置样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47559253/

相关文章:

javascript - 使用 JavaScript 防止标签处于事件状态

css - 使用 CSS 在 mouseout 上缩放到原始大小

css - 如何用jss指定网格模板

javascript - JQuery - 在屏幕上单击并拖动 div 而无需拖动

javascript - 将本地存储值分配给 $scope

HTML文本区域定位与CSS

css - Material-UI 中的 AppBar 转换?

javascript - 根据百分比在任意长度数组中查找项目

javascript - 更改本地范围内的数组成员会更改全局范围内的成员

页面加载时 Gatsby JSS "Flicker"