el-table添加行/单元格样式

本文详细介绍了Element UI中表格组件的row-style、cell-style、row-class-name和cell-class-name属性的使用方法,包括如何通过Object和Function两种方式设置行和单元格的样式及类名,以及如何根据数据动态地为特定行或单元格添加样式和类名。示例代码展示了如何实现不同场景的应用。
摘要由CSDN通过智能技术生成


一、官方文档释义

1.row-style/cell-style

行/单元格的 style 的回调方法,也可以使用一个固定的 Object 为所有行/单元格设置一样的 Style。参数类型:Function({row, rowIndex})/Object

2.row-class-name/cell-class-name

行/单元格的 className 的回调方法,也可以使用字符串为所有行/单元格设置一个固定的 className。参数类型:Function({row, column, rowIndex, columnIndex})/Object


二、row-style/cell-style的使用

1.row-style

使用Object

代码如下(示例):

<template>
 <div>
   <el-table :data="tableData" :row-style="{'background-color':'pink','color':'white'}">
     <el-table-column prop="name" label="姓名"></el-table-column>
     <el-table-column prop="date" label="日期"></el-table-column>
     <el-table-column prop="address" label="地址" width="800"></el-table-column>
   </el-table>
 </div>
</template>

效果如下(示例):
在这里插入图片描述使用固定对象Object传参时,会为所有行添加统一的样式。但是如果想给指定的行添加样式,就无法使用Object传参了,需要使用Function了

使用Function

代码如下(示例):

<template>
 <div>
   <el-table :data="tableData" :row-style="rowStyle">
     <el-table-column prop="name" label="姓名"></el-table-column>
     <el-table-column prop="date" label="日期"></el-table-column>
     <el-table-column prop="address" label="地址" width="800"></el-table-column>
   </el-table>
 </div>
</template>
<script>
export default {
	methods:{
   		rowStyle({row,rowIndex}){
     		if(row.name=="王小狼"){
       			return {
         			"background":"skyblue",
         			"color":"green"
       			}
     		}
   		}
	}
}
</script>

效果如下(示例):
在这里插入图片描述使用Function就可以为指定的行添加样式

2.cell-style

使用Object

代码如下(示例):

<template>
 <div>
   <el-table :data="tableData" :cell-style="{'background-color':'blue','color':'red'}">
     <el-table-column prop="name" label="姓名"></el-table-column>
     <el-table-column prop="date" label="日期"></el-table-column>
     <el-table-column prop="address" label="地址" width="800"></el-table-column>
   </el-table>
 </div>
</template>

效果如下(示例):
在这里插入图片描述使用固定的对象传参,会为所有单元格都加上统一的样式,效果与row-style传固定对象效果一样。同样,如果要为指定单元格添加样式,就需要用到Function,效果也会与row-style产生差异

使用Function

代码如下(示例):

<template>
 <div>
   <el-table :data="tableData" :cell-style="cellStyle">
     <el-table-column prop="name" label="姓名"></el-table-column>
     <el-table-column prop="date" label="日期"></el-table-column>
     <el-table-column prop="address" label="地址" width="800"></el-table-column>
   </el-table>
 </div>
</template>

 methods:{
   cellStyle({row,column,rowIndex,columnIndex}){
     if(row.name=="王小狼" && column.property=="name"){
       return {
         "background":"gray",
         "color":"purple"
       }
     }
   }
}

效果如下(示例):
在这里插入图片描述使用行、列数据就可以为指定单元格添加样式了


三、row-class-name/cell-class-name的使用

1.row-class-name

使用String

代码如下(示例):

<template>
 <div>
   <el-table :data="tableData" row-class-name="rowName">
    <el-table-column prop="name" label="姓名"></el-table-column>
    <el-table-column prop="date" label="日期"></el-table-column>
     <el-table-column prop="address" label="地址" width="800"></el-table-column>
   </el-table>
 </div>
</template>
<style>
.rowName{
 background:pink!important;
 color:deeppink
}
</style>

效果如下(示例):
在这里插入图片描述

使用Function

代码如下(示例):

<template>
 <div>
   <el-table :data="tableData" :row-class-name="rowClassName">
     <el-table-column prop="name" label="姓名"></el-table-column>
     <el-table-column prop="date" label="日期"></el-table-column>
     <el-table-column prop="address" label="地址" width="800"></el-table-column>
   </el-table>
 </div>
</template>
<script>
export default = {
 methods:{
   rowClassName({row,columnIndex}){
     if(row.date=="2022-05-01"){
       return "rowName"
     }
   }
 }
} 
</script>
<style>
.rowName{
 background:deeppink!important;
 color:whitesmoke
}
</style>

效果如下(示例):
在这里插入图片描述

2.cell-class-name

使用String

代码如下(示例):

<template>
 <div>
   <el-table :data="tableData" cell-class-name="cellName">
     <el-table-column prop="name" label="姓名"></el-table-column>
     <el-table-column prop="date" label="日期"></el-table-column>
     <el-table-column prop="address" label="地址" width="800"></el-table-column>
   </el-table>
</div>
</template>
<style>
.cellName{
 background:brown!important;
 color:chartreuse
}
</style>

效果如下(示例):
在这里插入图片描述

使用Function

代码如下(示例):

<template>
 <div>
   <el-table :data="tableData" :cell-class-name="cellClassName">
     <el-table-column prop="name" label="姓名"></el-table-column>
     <el-table-column prop="date" label="日期"></el-table-column>
     <el-table-column prop="address" label="地址" width="800"></el-table-column>
   </el-table>
 </div>
</template>

 methods:{
   cellClassName({row,column,rowIndex,columnIndex}){
     if(row.date!="2022-05-01" && column.label=="日期"){
       return "cellName"
     }
   }
 }

<style>
.cellName{
 background:blueviolet!important;
 color:aqua
}
</style>

效果如下(示例):
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值