reactjs - 如何为 Material UI 的 TableHead 赋予圆角

标签 reactjs material-ui

我正在使用 React 和 Material UI,我试图为表格的标题提供 10px 的 broder-radius,以便只有 TableHead 有圆角。
问题是边界半径似乎在 TableHead 上根本不起作用,如您在此屏幕截图中所见:enter image description here
代码(取自官方文档,我只是在 TableHead 中添加了样式):

<TableContainer>
  <Table aria-label="customized table">
    <TableHead style={{ backgroundColor: '#E2E2E2', borderRadius: '10px' }}>
      <TableRow>
        <TableCell>Dessert (100g serving)</TableCell>
        <TableCell align="right">Calories</TableCell>
        <TableCell align="right">Fat&nbsp;(g)</TableCell>
        <TableCell align="right">Carbs&nbsp;(g)</TableCell>
        <TableCell align="right">Protein&nbsp;(g)</TableCell>
      </TableRow>
    </TableHead>
    <TableBody>
      {rows.map((row) => (
        <TableRow key={row.name}>
          <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>
</TableContainer>;
我如何完成这项工作?

最佳答案

据我所知,没有办法为整个 tablerow 设置 border-radius,但是可以通过为第一个和最后一个单元格使用单独的半径来解决问题:

const { Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Paper, makeStyles } = MaterialUI

const useStyles = makeStyles((theme) => ({
  table: {
    minWidth: 400,
  },
  thead: {
    backgroundColor: 'lightgray',
    '& th:first-child': {
      borderRadius: '1em 0 0 1em'
    },
    '& th:last-child': {
      borderRadius: '0 1em 1em 0'
    }
  }
}))

function createData(name, calories, fat, carbs, protein) {
  return { 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),
]

const App = function () {
  const classes = useStyles()

  return (
    <TableContainer component={Paper}>
      <Table className={classes.table} aria-label="customized table">
        <TableHead classes={{ root: classes.thead }}>
          <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) => (
            <TableRow key={row.name}>
              <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>
    </TableContainer>
  )}

ReactDOM.render(<App />, document.getElementById('root'))
<script src="https://unpkg.com/react@17.0.2/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@17.0.2/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/@material-ui/core@4.11.3/umd/material-ui.development.js"></script>

<div id="root"></div>

关于reactjs - 如何为 Material UI 的 TableHead 赋予圆角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67896630/

相关文章:

javascript - 指定组件所需的 props

css - CSS 模块的 Emmet-Atom 自定义片段

javascript - 使用快速服务器在 React 应用程序中热重载

reactjs - 如何向 MUI 的默认排版添加新变体 (TypeScript)

reactjs - Material ui 的 makeStyles 中的动态值

javascript - 无法读取未定义的属性 'userNameInput'

javascript - 如何在React Material-UI自动完成中实现最小字符长度功能

javascript - 如何解决模块未找到: Can't resolve '@babel/runtime/core-js/map' in Material-UI

reactjs - 有没有办法在 Material UI 中扩展 makeStyle 类?

reactjs - 设置 Material ui 自动完成的 TextField 子项的样式