在 Material ui usestyles 中使用同级组合器

Jam*_*ino 5 javascript reactjs material-ui jss

我正在尝试使用材质 ui 在另一个 div 的悬停上更改一个 div 的背景。

标准的css是:

#a:hover ~ #b {
   background: #ccc;
}
Run Code Online (Sandbox Code Playgroud)

这是我在材料 ui 上的尝试。

const useStyles = makeStyles(theme => ({
a: {
  background:'#fff',

},
b: {
    background:'#fff'
    '&:hover ~ #a': {
       background:'#eee'
    }
}));
Run Code Online (Sandbox Code Playgroud)

Rya*_*ell 7

$是引用另一个规则名称(在本例中为“b”)时要使用的字符。您可以在此处找到此文档。#b将是用于匹配 ID 为“b”的元素的 CSS 语法。

下面是一个工作示例。

import React from "react";
import ReactDOM from "react-dom";

import { makeStyles } from "@material-ui/core/styles";

const useStyles = makeStyles({
  a: {
    "&:hover ~ $b": {
      backgroundColor: "#ccc"
    }
  },
  b: {}
});
function App() {
  const classes = useStyles();
  return (
    <div>
      <div className={classes.a}>This is a</div>
      <div className={classes.b}>This is b</div>
    </div>
  );
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
Run Code Online (Sandbox Code Playgroud)

编辑兄弟选择器 JSS