如何在JSS中使用子选择器

Jon*_*kas 8 javascript jss

我正在试验JSS,以查看迁移Sass代码库是否现实。我有一个非常基本的CSS样式示例,将其悬停时会修改子节点的样式。

span {
  color: red;
}

button:hover span {
  color: blue;
}
Run Code Online (Sandbox Code Playgroud)
<button>
  <span>Click Me</span>
</button>
Run Code Online (Sandbox Code Playgroud)

我不确定如何在JSS中编写此代码。我尝试过的东西看起来像:

const styles = {
  button: {
    '&:hover': {
      span: {
        color: 'blue',
      }
    }
  },
  span: {
    color: 'red',
  }
}

const { classes } = jss.createStyleSheet(styles).attach()

document.body.innerHTML = `
  <button class=${classes.button}>
    <span class=${classes.span}>Click Here</span>
  </button>
`
Run Code Online (Sandbox Code Playgroud)

谢谢!

Vno*_*mar 11

正如@cwouter 在评论中提到的,如果它是一个类名,你可以做这样的事情。

const styles = {
  button: {
    '&:hover $some_class_name': {
       color: 'blue',
    }
  },
  some_class_name: {
    color: 'red',
  }
}
Run Code Online (Sandbox Code Playgroud)


deo*_*owk 7

您是否尝试过:

const styles = {
  button: {
    '&:hover span': {
       color: 'blue',
    }
  },
  span: {
    color: 'red',
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!如果它是与元素选择器不匹配的类名,它将如何工作。例如,如果它是“ someClass”。 (4认同)
  • @JonSakas,在类的前面加上$。例如:`“&:hover $ someClass”` (2认同)