Sometimes, we want to use CSS child selectors in React Material UI.
In this article, we’ll look at how to use CSS child selectors in React Material UI.
How to use CSS child selectors in React Material UI?
To use CSS child selectors in React Material UI, we can start the property names of the style properties with &
.
For instance, we write:
import React, { useState } from "react";
import {
makeStyles,
Paper,
Table,
TableHead,
TableRow,
TableCell,
TableBody
} from "@material-ui/core";
const useStyles = makeStyles((theme) => ({
root: {
width: "100%",
marginTop: theme.spacing.unit * 3,
overflowX: "auto"
},
table: {
minWidth: 700
},
deleted: {
"& td": {
background: "red"
}
}
}));
let id = 0;
function createData(name, calories, fat, carbs, protein) {
id += 1;
return { id, name, calories, fat, carbs, protein };
}
const rows = [
createData("Frozen yoghurt", 159, 6.0, 24, 4.0),
createData("Ice cream sandwich", 237, 9.0, 37, 4.3),
createData("Eclair", 262, 16.0, 24, 6.0),
createData("Cupcake", 305, 3.7, 67, 4.3),
createData("Gingerbread", 356, 16.0, 49, 3.9)
];
export default function App() {
const classes = useStyles();
return (
<div>
<Paper className={classes.root}>
<Table className={classes.table}>
<TableHead>
<TableRow>
<TableCell>Dessert (100g serving)</TableCell>
<TableCell align="right">Calories</TableCell>
<TableCell align="right">Fat (g)</TableCell>
<TableCell align="right">Carbs (g)</TableCell>
<TableCell align="right">Protein (g)</TableCell>
</TableRow>
</TableHead>
<TableBody>
{rows.map((row) => {
return (
<TableRow key={row.id} className={classes.deleted}>
<TableCell component="th" scope="row">
{row.name}
</TableCell>
<TableCell align="right">{row.calories}</TableCell>
<TableCell align="right">{row.fat}</TableCell>
<TableCell align="right">{row.carbs}</TableCell>
<TableCell align="right">{row.protein}</TableCell>
</TableRow>
);
})}
</TableBody>
</Table>
</Paper>
</div>
);
}
We have the deleted
class styles for the td elements that are in the child of the selector.
We add this with '& td'
.
And we set the background to red.
In App
, we call useStyles
to return the classes
.
And we set the className
to classes.deleted
to TableRow
.
As a result, the td elements have the background red since we select the td elements inside the element with class deleted
and style them to have a red background.
Conclusion
To use CSS child selectors in React Material UI, we can start the property names of the style properties with &
.