element-ui 插槽自定义样式怎么居中

场景:使用element-ui组件,scope内部自定义样式导致的错位
效果图在这里插入图片描述
解决思路: template标签可理解为一个内嵌组件,宽高重新定义,可在自定义内容外层套一层盒子,让盒子占满所有空间,再使用flex让内部元素居中
实现

  1. HTML呈现
<el-table>
...
<el-table-column
    label="工单状态"
    min-width="80">
    <template slot-scope="scope">
      <div class="flex flex-align-center flex-justify-center" style="height:100%;width:100%">
        <div class="orderstatus" :class="scope.row.color">{{scope.row.orderStatus}}</div>
      </div>
    </template>
</el-table-column>
...
</el-table>
  1. CSS呈现
.orderstatus{
   width: 0.66rem;
   height: 0.27rem;
   line-height: 0.27rem;
   border-radius: 0.04rem;
   border: 0.01rem solid #fff;
 }
 .blue{
   color: #3788FF;
   border: 0.01rem solid #3788FF;
   background: rgba(55,136,255,0.3);
 }
 .deepblue{
   color: #1E77F5;
   border: 0.01rem solid #1E77F5;
   background: rgba(30,119,245,0.3);
 }
 .yellow{
   color: #ED981A;
   border: 0.01rem solid #ED981A;
   background: rgba(237,152,26,0.3);
 }
 .green{
   color: #00B825;
   border: 0.01rem solid #00B825;
   background: rgba(0,184,37,0.3);
 }
 .red{
   color: #DC2E25;
   border: 0.01rem solid #DC2E25;
   background: rgba(220,46,37,0.3);
 }
.flex {
  display: flex;
}
.flex-align-center {
  align-items: center;
}
.flex-justify-center {
  justify-content: center;
}
  1. js部分
async init(){
	await require().then(res=>{
		this.tableData = res.data.map(item=>{
		  switch(item.docStatus){
		    case 0:
		      item.orderStatus = '待发布'
		      item.color = 'blue'
		      break;
		    case 1:
		      item.orderStatus = '待签收'
		      item.color = 'yellow'
		      break;
		    case 2:
		      item.orderStatus = '待提审'
		      item.color = 'deepblue'
		      break;
		    case 3:
		      item.orderStatus = '已验收'
		      item.color = 'green'
		      break;
		    case 4:
		      item.orderStatus = '已拒收'
		      item.color = 'red'
		      break;
		    default:
		      item.orderStatus = '待定'
		  }
		  return item;
		})
	})
}
  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Element UI中,要实现表格内容居中显示,可以通过自定义表格的列样式或使用插槽来实现。下面是两种常见的方法: 1. 使用自定义样式: 可以使用`align`属性设置表格列的对齐方式为"center",如下所示: ```html <el-table :data="tableData"> <el-table-column prop="name" label="姓名" align="center"></el-table-column> <el-table-column prop="age" label="年龄" align="center"></el-table-column> <!-- 其他列 --> </el-table> ``` 在上面的示例中,将`align`属性设置为"center",可以使表格列的内容居中显示。 2. 使用插槽方式: 可以使用`slot-scope`和`<template>`标签来自定义表格列的内容,并在模板中设置居中样式,如下所示: ```html <el-table :data="tableData"> <el-table-column label="姓名"> <template slot-scope="scope"> <div class="cell-center">{{ scope.row.name }}</div> </template> </el-table-column> <el-table-column label="年龄"> <template slot-scope="scope"> <div class="cell-center">{{ scope.row.age }}</div> </template> </el-table-column> <!-- 其他列 --> </el-table> ``` 在上面的示例中,通过使用`slot-scope`获取到每一行的数据,并在模板中使用`<div>`标签设置居中样式,通过给`<div>`标签添加一个名为`cell-center`的样式类来实现内容居中显示。 需要注意的是,你可以根据实际需求来调整样式和布局。如果你想对所有列都进行居中显示,可以在CSS中定义一个`.cell-center`样式类,然后将其应用到表格列的内容中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值