我正在使用
material-ui
,请参见以下示例代码:import React from 'react';
import { makeStyles } from '@material-ui/core/styles';
import Button from '@material-ui/core/Button';
const useStyles = makeStyles((theme) => ({
root: {
'& > *': {
margin: theme.spacing(1),
},
},
}));
export default function ContainedButtons() {
const classes = useStyles();
return (
<div className={classes.root}>
<Button variant="contained">Default</Button>
<Button variant="contained" color="primary">
Primary
</Button>
<Button variant="contained" color="secondary">
Secondary
</Button>
<Button variant="contained" disabled>
Disabled
</Button>
<Button variant="contained" color="primary" href="#contained-buttons">
Link
</Button>
</div>
);
}
这是我第一次使用 jss
,我尝试用 & > *
玩耍来理解它的工作方式,我猜它是某种 CSS 选择器,但是查阅了这里和这里的文档后,我对以下内容感到困惑:
*
和>
是有效的 CSS 选择器,我可以理解,但是&
的意义是什么?我想将 CSS 选择器限制为仅适用于按钮,应该使用
& > button
还是& > Button
?两者都可以工作,但我很困惑,在最终向浏览器显示的内容中,应该使用button
,所以最好使用& > button
吗?
&
通常指父元素,并有时用于提高选择器的特异性。为什么不创建第二个样式键值对,即button:...
并将其应用于按钮,例如<Button className={classes.button} ...
? - Drew Reese