Issue
I am trying to add some spacing between each row in my table in MUI. However when adding borderSpacing: '0px 10px!important' and borderCollapse: 'separate!important', nothing happens. How can I add spacing between each row? This normally works fine in HTML and CSS so therefor I am unsure how to solve in mui. Thanks [![This is my goal][1]][1]
import React from 'react'
import { Container, Table, TableCell, TableHead, TableRow, Paper,TableBody, Avatar, Typography,Box,TableContainer } from '@mui/material'
import { makeStyles } from '@material-ui/core/styles';
const useStyles = makeStyles(() => ({
table: {
minWidth: 650,
borderCollapse: 'separate!important',
borderSpacing: '0px 10px!important'
}
}))
const MyTable = () => {
const classes = useStyles();
return (
<React.Fragment>
<Container maxWidth={"lg"} sx={{mt:"0.5%"}}>
<TableContainer className={classes.tableContainer} component={Paper}>
<Table className={classes.table}>
<TableHead>
<TableRow>
<TableCell>SOMETHING</TableCell>
<TableCell>ELSE</TableCell>
<TableCell>TO</TableCell>
<TableCell>SORT</TableCell>
<TableCell></TableCell>
</TableRow>
</TableHead>
<TableBody>
<TableRow >
<TableCell><Box sx={{display:"flex",justifyContent:"space-around",alignItems:"center"}}><Avatar></Avatar>|<Typography>NAME</Typography></Box></TableCell>
<TableCell>AGE</TableCell>
<TableCell>BOOK</TableCell>
<TableCell>SCHOOL</TableCell>
<TableCell>BUTTON</TableCell>
</TableRow>
<TableRow >
<TableCell><Box sx={{display:"flex",justifyContent:"space-around",alignItems:"center"}}><Avatar></Avatar>|<Typography>NAME</Typography></Box></TableCell>
<TableCell>AGE</TableCell>
<TableCell>BOOK</TableCell>
<TableCell>SCHOOL</TableCell>
<TableCell>BUTTON</TableCell>
</TableRow>
<TableRow >
<TableCell><Box sx={{display:"flex",justifyContent:"space-around",alignItems:"center"}}><Avatar></Avatar>|<Typography>NAME</Typography></Box></TableCell>
<TableCell>AGE</TableCell>
<TableCell>BOOK</TableCell>
<TableCell>SCHOOL</TableCell>
<TableCell>BUTTON</TableCell>
</TableRow>
<TableRow >
<TableCell><Box sx={{display:"flex",justifyContent:"space-around",alignItems:"center"}}><Avatar></Avatar>|<Typography>NAME</Typography></Box></TableCell>
<TableCell>AGE</TableCell>
<TableCell>BOOK</TableCell>
<TableCell>SCHOOL</TableCell>
<TableCell>BUTTON</TableCell>
</TableRow>
</TableBody>
</Table>
</TableContainer>
</Container>
</React.Fragment>
)
}
export default MyTable
'''
[1]: https://i.stack.imgur.com/FbDjm.png
Solution
It doesn't seem to be a feature in this component. You can achieve it by overriding some css as follow :
.MuiTableContainer-root {
box-shadow: none;
}
.MuiTable-root{
border-collapse: separate;
border-spacing: 0 10px;
border: transparent;
}
.MuiTable-root th, .MuiTable-root td {
border-top: 1px solid black;
border-bottom: 1px solid black;
}
Note that you have to create the border yourelf now by adding it to the td and th.
Also, think about encapsulating if you don't want this modification to be global.
Answered By - Quentin Grisel Answer Checked By - Katrina (PHPFixing Volunteer)
0 Comments:
Post a Comment
Note: Only a member of this blog may post a comment.