J'ai cette mise en page JSX actuellement
bottomArea: { $h5: { color: "red" } }
Et dans mes styles, j'essaye de changer la couleur de l'élément de typographie h5
<div className={classes.bottomArea}> <Box display="flex" flexDirection="column"> <Typography variant="h1" component="span">1982</Typography> <Typography variant="h5" component="span">Bed Count</Typography> </Box> </div>
Je pense comprendre pourquoi cela ne fonctionne pas, mais y a-t-il un moyen simple de cibler cette variante h5
?
Voici une boîte de codes show
3 Réponses :
Vous utilisez les accessoires de Typographie
dans le mauvais sens. Les accessoires variant
définissent uniquement le style appliqué au composant tandis que les accessoires component
définissent quelle balise sera utilisée pour rendre ce composant.
Si vous voulez votre Composant de typographie
pour être un h5
:
bottomArea: { '& h5': { color: "red" } }
Et puis pour le style:
<Typography variant="h5" component="h5">Bed Count</Typography>
vous pouvez utiliser withStyle
pour mettre à jour les classes de composants spécifiques
vérifiez ceci API de typographie
const Typography = withStyles(() => ({ h5: { color: "red", }, }))(MuiTypography); export default function Types() { return ( <div> <Box display="flex" flexDirection="column"> <Typography variant="h1" component="span"> 1982 </Typography> <Typography variant="h5" component="span"> Bed Count </Typography> </Box> </div> ); }
En supposant que vous souhaitiez conserver Dans la syntaxe ci-dessous, le Documentation JSS: https://cssinjs.org/jss-plugin-nested/?v= v10.3.0 # use - to-reference-selector-of-the-parent-rule Réponse associée: Comment changer le style d'un enfant lors du survol un parent utilisant les styles jss material-ui
comme composant, vous pouvez cibler la variante h5
en ciblant la classe CSS ajoutée par Typography code > qui est
MuiTypography-h5
. &
fait référence à la classe générée pour bottomArea
puis à l'espace indique que vous ciblez .MuiTypography-h5
en tant que descendant . import React from "react";
import Typography from "@material-ui/core/Typography";
import Box from "@material-ui/core/Box";
import { makeStyles } from "@material-ui/core/styles";
const useStyles = makeStyles({
bottomArea: {
"& .MuiTypography-h5": {
color: "red"
}
}
});
export default function Types() {
const classes = useStyles();
return (
<div className={classes.bottomArea}>
<Box display="flex" flexDirection="column">
<Typography variant="h1" component="span">
1982
</Typography>
<Typography variant="h5" component="span">
Bed Count
</Typography>
</Box>
</div>
);
}
cela fonctionnera-t-il en mode production lorsque ces classes seront converties en noms de classe raccourcis? Tels que jss-101
etc.
@Jordan Les classes Mui ne sont pas raccourcies en mode production en v4 (du moins pas par défaut). Ils ont été raccourcis dans la v3.