首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何给Material UI TableRow组件赋予边框样式?

Material UI 的 TableRow 组件可以通过自定义样式来添加边框。以下是几种常见的方法:

方法一:使用 withStylesmakeStyles

如果你使用的是 Material UI v4,可以使用 withStyles 高阶组件来创建自定义样式:

代码语言:txt
复制
import React from 'react';
import { withStyles } from '@material-ui/core/styles';
import Table from '@material-ui/core/Table';
import TableBody from '@material-ui/core/TableBody';
import TableCell from '@material-ui/core/TableCell';
import TableContainer from '@material-ui/core/TableContainer';
import TableHead from '@material-ui/core/TableHead';
import TableRow from '@material-ui/core/TableRow';
import Paper from '@material-ui/core/Paper';

const useStyles = (theme) => ({
  tableRow: {
    '&:nth-of-type(odd)': {
      backgroundColor: theme.palette.background.default,
    },
    border: '1px solid black',
  },
});

function MyTable() {
  const classes = useStyles();

  return (
    <TableContainer component={Paper}>
      <Table>
        <TableHead>
          <TableRow className={classes.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} className={classes.tableRow}>
              <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>
  );
}

export default MyTable;

如果你使用的是 Material UI v5,可以使用 makeStyles 钩子:

代码语言:txt
复制
import React from 'react';
import { makeStyles } from '@mui/styles';
import Table from '@mui/material/Table';
import TableBody from '@mui/material/TableBody';
import TableCell from '@mui/material/TableCell';
import TableContainer from '@mui/material/TableContainer';
import TableHead from '@mui/material/TableHead';
import TableRow from '@mui/material/TableRow';
import Paper from '@mui/material/Paper';

const useStyles = makeStyles({
  tableRow: {
    '&:nth-of-type(odd)': {
      backgroundColor: '#f5f5f5',
    },
    border: '1px solid black',
  },
});

function MyTable() {
  const classes = useStyles();

  return (
    <TableContainer component={Paper}>
      <Table>
        <TableHead>
          <TableRow className={classes.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} className={classes.tableRow}>
              <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.prosterol}</TableCell>
            </TableRow>
          ))}
        </TableBody>
      </Table>
    </TableContainer>
  );
}

export default MyTable;

方法二:使用内联样式

你也可以直接在 TableRow 组件上使用内联样式:

代码语言:txt
复制
import React from 'react';
import Table from '@material-ui/core/Table';
import TableBody from '@material-ui/core/TableBody';
import TableCell from '@material-ui/core/TableCell';
import TableContainer from '@material-ui/core/TableContainer';
import TableHead from '@material-ui/core/TableHead';
import TableRow from '@material-ui/core/TableRow';
import Paper from '@material-ui/core/Paper';

function MyTable() {
  return (
    <TableContainer component={Paper}>
      <Table>
        <TableHead>
          <TableRow style={{ border: '1px solid black' }}>
            <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} style={{ border: '1px solid black' }}>
              <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>
  );
}

export default MyTable;

方法三:使用 CSS 类

你也可以创建一个 CSS 文件,并在 TableRow 组件上应用该类:

代码语言:txt
复制
/* styles.css */
.table-row {
  border: 1px solid black;
}

然后在你的组件中引入并使用该类:

代码语言:txt
复制
import React from 'react';
import Table from '@material-ui/core/Table';
import TableBody from '@material-ui/core/TableBody';
import TableCell from '@material-ui/core/TableCell';
import TableContainer from '@material-ui/core/TableContainer';
import TableHead from '@material-ui/core/TableHead';
import TableRow from '@material-ui/core/TableRow';
import Paper from '@material-ui/core/Paper';
import './styles.css';

function MyTable() {
  return (
    <TableContainer component={Paper}>
      <Table>
        <TableHead>
          <TableRow className="table-row">
            <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} className="table-row">
              <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>
  );
}

export default MyTable;

总结

以上三种方法都可以为 TableRow 组件添加边框样式。选择哪种方法取决于你的具体需求和个人偏好。通常情况下,使用 withStylesmakeStyles 是推荐的做法,因为它们提供了更好的样式封装和主题支持。

参考链接

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

React Table 表格组件使用教程 排序、分页、搜索过滤筛选功能实战开发

因此使用 react-table 进行开发具有一定的难度,而本文将由浅入深地讲解如何在 React 项目中使用 react-table 实现各种常见的需求,例如:排序、分页、搜索过滤筛选等;同时还会结合一个完整的案例大家讲解如何搭配使用...Material-UI 以及模拟从后端获取数据进行分页等功能。...跟随本文你将学到如何使用 react-table 在 React 中搭建表格组件如何使用 react-table 表格组件进行数据的分页、排序、搜索过滤筛选react-table 实战案例:手把手教你使用...TableRow from '@material-ui/core/TableRow'function Table({ columns, data }) { const { getTableProps...》React Table 组件与卡拉云前面我们展示了如何在 react-table 中搭配 Material-UI 构建一个完整的表格组件,相信你已经上手 react-table 的用法,而这只是 react-table

16.8K01

基于 HTML5 的 3D 工业互联网展示方案

(0, 0, 3, 0, '#3162e8'))// 在组件的画布上绘制直线边框;与 LineBorder 不同的是,此边框可以单独绘制某一个或几个方向的边框 titleLabel.setTextFont...(0, 0, 1, 0, 'rgb(138,138,138)'));// 设置组件边框 tableRow1.addView(label);// 添加子组件 tableRow1.addView(textField...); tableLayout.addView(tableRow1);// 将子组件加到容器中 “归类”和“模型”类似,都是下拉框,我们用 HT 封装的 ht.ui.ComboBox 组合框组件,跟 ht.ui.TextField... 颜色选择器组件组件从 ht.ui.ComboBox 继承并使用 ht.ui.ColorDropDown 作为下拉模板,跟上面的下拉列表很类似,只是下拉的模板变了而已: // 染色 var tableRow9....addView(label); tableRow9.addView(comboBox); tableLayout.addView(tableRow9); 最后通过 ht.ui.Form 组件的 addChangeListener

2.7K20
  • 基于 HTML5 WebGL 的 3D 仓储管理系统

    (0, 0, 3, 0, '#3162e8'))//在组件的画布上绘制直线边框;与 LineBorder 不同的是,此边框可以单独绘制某一个或几个方向的边框 titleLabel.setTextFont...(0, 0, 1, 0, 'rgb(138,138,138)'));//设置组件边框 tableRow1.addView(label);//添加子组件 tableRow1.addView(textField...); tableLayout.addView(tableRow1);//将子组件加到容器中 “归类”和“模型”类似,都是下拉框,我们用 HT 封装的 ht.ui.ComboBox 组合框组件,跟 ht.ui.TextField... 颜色选择器组件组件从 ht.ui.ComboBox 继承并使用 ht.ui.ColorDropDown 作为下拉模板,跟上面的下拉列表很类似,只是下拉的模板变了而已: // 染色 var tableRow9....addView(label); tableRow9.addView(comboBox); tableLayout.addView(tableRow9); 最后通过 ht.ui.Form 组件的 addChangeListener

    3.5K51

    探索 Android Design Support Library v28 新增内容

    在这篇文章中, 我想要看看以 Material 视图组件形式添加进入 Support Library 的新增部分....Material Button Material Button 是一个小部件, 可用于在你的应用程序的用户界面中显示材质样式的按钮....Chip Chip 组件允许我们在布局中展示一个纸片组件. 其本质上一些文字被赋予一个圆形背景 -- 这样做的目的是向用户显示某种形式的文本集合, 可能被选择也可能不被选择....Support Library 现在包含了一个名为 Material Card View 的组件, 它为我们提供了开箱即用的 Material 风格的 CardView 实现. ?... 你可以使用其中的两个属性进一步设置卡片视图的样式: app:strokeColor: 用于给定的边框的颜色

    1.9K20

    安卓软件开发:使用Jetpack Compose和M3的轮播图和列表App-上篇

    一、项目背景 这个应用中常见的 UI 需求是轮播图、列表和弹窗,使用 Jetpack Compose 和 M3 的组件,可以快速、高效编码现代化的 UI。...在首页的 HomeScreen 中使用了 LazyRow 来实现横向滚动的轮播图,还展示了如何使用 M3 的组件创建卡片样式的分类项,自定义颜色、样式和阴影效果。...它类似于传统的 RecyclerView,但用起来要简单很多 • stickyHeader: 它可以让大家 Card: 包装分类项,提供了一个带有阴影、边框的卡片样式。...三 总结 通过本次Demo,使用 Jetpack Compose 和 M3 实现了常见的轮播图、列表和弹窗功能,展示了如何高效构建现代化 UI 界面,希望这篇文章帮助大家更好理解 Compose 的强大...有任何问题欢迎提问,感谢大家阅读 ) 四、新增:2024/10/15-更新文章 近期我看了一篇更新轮播图组件的新闻,说JetpackComposeM3支持material3最新版本1.3.0 4.1 项目配置

    369111

    基于 HTML5 WebGL 的 3D 仓储管理系统

    (0, 0, 3, 0, '#3162e8'))//在组件的画布上绘制直线边框;与 LineBorder 不同的是,此边框可以单独绘制某一个或几个方向的边框 titleLabel.setTextFont...(0, 0, 1, 0, 'rgb(138,138,138)'));//设置组件边框 tableRow1.addView(label);//添加子组件 tableRow1.addView(textField...); tableLayout.addView(tableRow1);//将子组件加到容器中 “归类”和“模型”类似,都是下拉框,我们用 HT 封装的 ht.ui.ComboBox 组合框组件,跟 ht.ui.TextField... 颜色选择器组件组件从 ht.ui.ComboBox 继承并使用 ht.ui.ColorDropDown 作为下拉模板,跟上面的下拉列表很类似,只是下拉的模板变了而已: // 染色 var tableRow9....addView(label); tableRow9.addView(comboBox); tableLayout.addView(tableRow9); 最后通过 ht.ui.Form 组件的 addChangeListener

    3.6K30

    技巧分享: 如何快速搭建一致统一的设计系统

    如图: 边框属性 现在,我们一起来了解另一种需要接受自定义值的样式属性——边框属性 对于组件边框的圆角设计,一般包括以下边框圆角值: 针对小组件(比如复选框,标签和Tags之类组件)的较小边框圆角值...针对按钮和输入框之类组件的中等边框圆角值 针对卡片,模块以及其他大组件的较大边框圆角值 2px,4px和8px的组件边框圆角值展示 注意:我们还需要特别为一些圆角组件,例如头像组件等,设置一个50%的边框圆角值...而我最常用的间距比例尺寸是Material Design设计规范的8dp网格尺寸。...正是由于在这方面的认识不同,才使许多设计师误入歧途,产品UI设计带来更多的问题。...下面,我们使用上面的样式库中定义的样式来构建一些常见的组件: 常见的按钮组件 下面我们从简单的按钮组件开始,来说明如何使用在样式库中预先定义的样式来构建: 其它组件 同样,以上提及的颜色、字体大小、阴影和填充值都可以直接通过上面预定义的样式库中的样式设置而来

    63310

    技巧分享: 如何快速搭建一致统一的设计系统

    如图: 边框属性 现在,我们一起来了解另一种需要接受自定义值的样式属性——边框属性 对于组件边框的圆角设计,一般包括以下边框圆角值: 针对小组件(比如复选框,标签和Tags之类组件)的较小边框圆角值...针对按钮和输入框之类组件的中等边框圆角值 针对卡片,模块以及其他大组件的较大边框圆角值 2px,4px和8px的组件边框圆角值展示 注意:我们还需要特别为一些圆角组件,例如头像组件等,设置一个50%的边框圆角值...而我最常用的间距比例尺寸是Material Design设计规范的8dp网格尺寸。...正是由于在这方面的认识不同,才使许多设计师误入歧途,产品UI设计带来更多的问题。...下面,我们使用上面的样式库中定义的样式来构建一些常见的组件: 常见的按钮组件 下面我们从简单的按钮组件开始,来说明如何使用在样式库中预先定义的样式来构建: 其它组件 同样,以上提及的颜色、字体大小、阴影和填充值都可以直接通过上面预定义的样式库中的样式设置而来

    99720

    compose--初入compose、资源获取、标准控件与布局

    ,每个组件都可以很方便的重用,这点在UI开发时确实便利了不少。...Button Button需要传入一个点击事件onClick的lambda表达式,和一个content内容组件的lambda表达式,border边框支持Shader(点击跳转详情),其他参数说明如下:...= null,//边框,支持Shader contentPadding: PaddingValues = ButtonDefaults.ContentPadding,// 内容组件的padding...,所以设置组件,这边Row设置Modifier: @Preview @Composable fun MyDivider2() { Row(modifier = Modifier.height...)和功能,Scaffold的学习可以通过官网:Scaffold官方示例(有些参数只有MD2版本才有) 4.1 topBar 槽位topBar就是顶部子组件准备的,如:TopAppBar: @OptIn

    6K30

    前端框架与库 - Material-UI组件

    Material-UI 是一个基于 React 的 UI 组件库,它遵循 Google 的 Material Design 设计规范,提供了丰富的预构建组件,极大地简化了前端开发过程。...本文将深入浅出地介绍 Material-UI 的常见问题、易错点及如何避免这些问题,并附带代码示例,帮助你更好地掌握 Material-UI 的使用技巧。 1....Material-UI简介 Material-UI 不仅提供了美观的组件,还注重组件的可定制性和灵活性。它支持主题化,使得你可以轻松调整应用的整体外观,而无需从零开始设计界面。 2....2.2 忽视自定义样式 虽然 Material-UI 提供了丰富的预设样式,但在某些场景下,可能需要对组件进行更精细的样式控制。直接修改全局样式可能会导致意料之外的影响。...如何避免 3.1 检查版本兼容性 在升级 Material-UI 或 React 之前,务必查阅官方文档,确认版本间的兼容性。

    23810

    前端框架与库 - Material-UI组件

    Material-UI 是一个基于 React 的 UI 组件库,它遵循 Google 的 Material Design 设计规范,提供了丰富的预构建组件,极大地简化了前端开发过程。...本文将深入浅出地介绍 Material-UI 的常见问题、易错点及如何避免这些问题,并附带代码示例,帮助你更好地掌握 Material-UI 的使用技巧。1....Material-UI简介Material-UI 不仅提供了美观的组件,还注重组件的可定制性和灵活性。它支持主题化,使得你可以轻松调整应用的整体外观,而无需从零开始设计界面。2....2.2 忽视自定义样式虽然 Material-UI 提供了丰富的预设样式,但在某些场景下,可能需要对组件进行更精细的样式控制。直接修改全局样式可能会导致意料之外的影响。...如何避免3.1 检查版本兼容性在升级 Material-UI 或 React 之前,务必查阅官方文档,确认版本间的兼容性。

    11300

    双管齐下:同时设计 iOS 和 Anroid

    对于 Web 设计者而言,他们早就熟悉了 MD 了 网上有很多免费而且好用的 UI kit,你可以将它们用在你的项目中,你可以在这片文章的最后找到一些 kit 资源的下载链接,使用这些组件将会给你的 App...状态栏(显示你的网络、电量和时间信息)是系统组件,你不需要考虑设计它,只要确保它们不会对他人造成误解就好了。 ? 4. 导航 或许iOS 和 Android 平台之间最大的区别就在于他们的导航样式了。...在 UI 设计中,卡片正逐渐成为一种主要的 UI 设计样式,它们可以应付多种情况,而且用户提供了一种能够呈现有效内容的便捷方式。...按钮样式 这里是 MD 下定义的几个按钮类型: 浮动动作按钮(Floating action buttons):最传统的有边框的按钮,阴影厚重明显,将它们从页面上分离出来。...通用 UI 控制 复选框,单选框和输入框,以及开关都是应该有着原生感觉的控件。像警告框和对话框一样,这些控件保持默认样式的话能够用户带来熟悉感和信任感。

    1.4K50

    JavaScript--DOM总结

    borderBottomStyle 设置底边框样式 borderBottomWidth 设置底边框的宽度 borderColor 设置所有四个边框的颜色 (可设置四种颜色) borderLeft 在一行设置左边框的所有属性...borderLeftColor 设置左边框的颜色 borderLeftStyle 设置左边框样式 borderLeftWidth 设置左边框的宽度 borderRight 在一行设置右边框的所有属性...borderRightColor 设置右边框的颜色 borderRightStyle 设置右边框样式 borderRightWidth 设置右边框的宽度 borderStyle 设置所有四个边框样式...(可设置四种样式) borderTop 在一行设置顶边框的所有属性 borderTopColor 设置顶边框的颜色 borderTopStyle 设置顶边框样式 borderTopWidth 设置顶边框的宽度...TableRow对象 TableRow 对象集合 集合 描述 cells[] 返回包含行中所有单元格的一个数组。

    6910

    盘点7个开源WPF控件

    项目简介 这是一个基于WPF开发的,可扩展、高度可定制、轻量级的UI组件,支持拖拉拽功能,可以让开发人员快速实现需要选项卡窗口的系统。...特色功能 1、拖拉拽标签; 2、浮动的窗口、多文档界面; 3、支持MVVM; 4、支持Chrome风格的标签、支持IE风格的透明风格; 5、可自定义样式; 6、支持调整窗口透明度、窗口大小、最大化等样式...5、适合Windows桌面、Material Design设计风格、WPF美观控件库 项目简介 这是一个适用于Windows桌面,全面且易于使用的控件库,遵循Google推测的Material Design...UI控件齐全,并且支持自定义主题颜色、字体等。 核心组件 除了包含标准的控件主题外,该套件还包含了一些常用的控件:时钟、对话框、浮动按钮、卡片、齐全图标等。...控件核心功能 1、工作簿:支持多工作表、工作表选项卡控件; 2、工作表:支持合并、取消合并、单元格编辑、数据格式、自定义单元格、填充数据序列、单元格文本旋转、富文本、剪贴板、下拉列表单元格、边框样式

    1.8K20

    你不知道的web前端(上)

    二、好玩的css ●● css是指层叠样式表,用来定义如何显示html。...如果没有css样式,html原始的控件是相当丑陋的,我们来看下没有任何样式修饰的按钮长这样: 使用了样式修饰的按钮长这样: 这里面加入了背景色、圆角、字体颜色、边框样式。...css提供的样式也是相当丰富的,可以描述html标签的布局定位、背景颜色、字体颜色、字体大小、边框、渐变、动画等等,它可以做出很多酷炫、好玩的效果。...vue和react都是javascript框架,而element是基于vue构建出来的一套UI组件库,antdesign是基于react构建出的UI组件库。...UI组件库封装了很多html原生的控件,并赋予简洁通用的样式,使用UI组件库可以快速的开发一个网站,降低了很多开发成本。

    2K40

    【Android 应用开发】Android UI 设计之 TextView EditText 组件属性方法最详细解析

    : TextView 直接继承View类, 同时是 EditText 和 Button 两组组件类的父类;  一....设置TextView文本边框 背景渐变 使用背景 : TextView 是没有边框的, 如果要加上边框, 可以通过设置TextView的背景添加边框; 自定义背景: 使用XML文件定义一个drawable...图像, 可以为该Drawable指定背景颜色,边框颜色,边框宽度,以及边框角度,颜色渐变等效果; ....将Spannable对象设置TextView : textView.setText(span); 实例 :  源码 :  TextView textView = (TextView)...:AutoCompletetextView, 该组件是带自动完成功能的组件, 通常与Adapter一起使用; 全屏输入法 :ExtractEditText, EditText的底层服务类, 负责提供全屏输入法

    1.7K30

    Android Material UI控件之ShapeableImageView

    Android Material UI控件之ShapeableImageView 前言 你有使用过Material中的UI控件吗?为什么要使用它们,相对于原来的控件优势在哪里?   ...相信你看到这篇文章也会有所疑问,第一个问题就不用说了,那么从第二问题开始回答,Android官方为开发者提供了许多丰富的UI控件,Material 组件就是包含了这些控件的一套工具,多数时候使用它可以满足我们日常开发...UI的需求,提高效率。...因为我是打算写一个Material UI系列文章的,所以我会新建一个项目。 在app下的build.gradle中的dependencies闭包中增加如下依赖,然后Sync,同步到项目中。...⑧ 头像图片 头像常规的就是一个圆形的,然后外边有一个边框。圆形的样式之前已经写了,那么只需要边框就可以了。边框就更简单了。

    2.3K41
    领券