Lir*_*n H 10 javascript reactjs material-ui jss
我想为<p>当前组件中的所有人添加规则。我在任何地方都找不到有关如何按标签名称添加 CSS 规则的信息(material-ui 文档、Stack Overflow 等)。
不支持吗?
我正在尝试做这样的事情:
const useStyles = makeStyles((theme: Theme) =>
createStyles({
'p': {
margin: 0,
},
someClass: {
fontSize: 14,
},
})
);
Run Code Online (Sandbox Code Playgroud)
编辑:
使用 Ryan 的解决方案有效,但会产生一个新问题:
import React from 'react';
import { makeStyles, Theme, createStyles } from '@material-ui/core';
const useStyles = makeStyles((theme: Theme) =>
createStyles({
root: {
'& p': {
margin: 0,
},
},
// I want this rule to override the rule above. It's not possible in the current configuration, because `.root p` is more specific than `.title`
// This problem originates from the fact that I had to nest the rule for `<p>` inside a CSS class
title: {
margin: '0 0 16px',
},
})
);
export default () => {
const classes = useStyles({});
return (
<div className={classes.root}>
<p className={classes.title}>My title</p>
<p>A paragraph</p>
<p>Another paragraph</p>
</div>
);
};
Run Code Online (Sandbox Code Playgroud)
Rya*_*ell 15
由于您希望将其作用于您的组件,因此您需要一个类来应用于您的组件(例如classes.root在下面的示例中)。然后,您可以p使用& p. 如果您随后需要覆盖p组件中另一个 CSS 类的标签样式,您可以使用另一个嵌套规则来定位p也具有该类的标签(例如classes.title在示例中)。
import React from "react";
import { makeStyles } from "@material-ui/core/styles";
const useStyles = makeStyles(theme => ({
root: {
"& p": {
margin: 0,
"&$title": {
margin: "0 0 16px"
}
}
},
title: {}
}));
export default function App() {
const classes = useStyles();
return (
<div className="App">
<p>This paragraph isn't affected.</p>
<p>This paragraph isn't affected.</p>
<div className={classes.root}>
<p className={classes.title}>My title</p>
<p>A paragraph</p>
<p>Another paragraph</p>
</div>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
相关文档:https : //cssinjs.org/jss-plugin-nested?v=v10.1.1#use--to-reference-selector-of-the-parent-rule
| 归档时间: |
|
| 查看次数: |
5649 次 |
| 最近记录: |