vue+el_table修改单列背景颜色

我们在开发中,如果遇到给表格单独一列添加样式该怎么做呢

1.我们在模板中添加el-table这个组件
 

  <el-table :data="data" style="width: 100%;border:1px solid #31724f" border :cell-style="colunmStyle"
                :header-cell-style="{ background: '#598332', fontSize: '14px', color: '#fff', borderColor: 'rgb(5,50,5)', textAlign: 'center' }"
                :span-method="objectSpanMethod">
                >
                <el-table-column prop="null" label="">
                </el-table-column>
                <el-table-column prop="zhibiao" label="指标">
                </el-table-column>
                <el-table-column prop="danwei" label="单位">
                </el-table-column>
                <el-table-column prop="edingzhi" label="额定值">
                </el-table-column>
</el-table>

2.在el-table中增加 :cell-style='colunmStyle'

3.在methods增加这个方法

// 更改第一列背景颜色类
  methods: {
    colunmStyle({ row, column, rowIndex, columnIndex }) {
      // { borderColor: '#255730', fontSize: '14px', textAlign: 'center', fontWeight: '700', color: '#000' }
      //第一列背景色
      if (columnIndex == 0) {
        return "background:#96c06b;color:#fff;font-weight:700;textAlign:center;fontSize: 16px;borderColor: #255730";
      } else {
        return "color:#000;font-weight:700;textAlign:center;fontSize: 14px;borderColor: #255730";
      }
    },
  },

row:每一行的数据

colunm:每一列的数据

rowIndex:行数下标从0开始

colunmIndex:列数下标从0开始

这样就可以啦,请看示例图:

### 如何在 Element UI 中设置 el-table-column 的某些列内容居中对齐 在 Element UI 的 `el-table` 组件中,可以通过设置 `align` 属性来控制表格单元格的内容对其方式。如果希望实现某些特定列的居中对齐效果,则可以在对应的 `<el-table-column>` 标签中指定 `align="center"`。 以下是具体的实现方法: #### 方法一:通过 `align` 属性设置单列居中 可以直接在需要居中的列上添 `align="center"` 属性。例如,在以下代码片段中,“姓名”这一列被设置了居中对齐[^2]。 ```vue <el-table :data="tableData" border stripe style="width: 100%"> <el-table-column prop="date" label="日期" align="left" width="180"></el-table-column> <el-table-column prop="name" label="姓名" align="center" width="180"></el-table-column> <!-- 姓名列居中 --> <el-table-column prop="address" label="地址" align="right" width="260"></el-table-column> </el-table> ``` #### 方法二:全局样式调整表头与内容一致 当使用 `align="center"` 后,可能会遇到表头和内容不对齐的情况(如全选框)。此时可通过自定义 CSS 来修复该问题。例如,针对 `.el-table--border .el-table__cell:first-child .cell` 添样式以修正默认行为[^1]。 ```css /* 解决全选框 header 错位 */ .el-table--border .el-table__cell:first-child .cell { padding: 0; } ``` #### 方法三:动态设置单元格样式 除了静态配置外,还可以利用 `header-cell-style` 和 `cell-style` 动态传入对象或函数来自定义每一行/列的样式。这适用于更复杂的场景下灵活调整不同区域的表现形式[^4]。 示例代码展示如何让某几列表现为中心对齐的同时保持其他部分不变: ```vue <template> <el-table :data="tableData" border stripe :header-cell-style="{ textAlign: 'center' }"> <el-table-column prop="date" label="日期" align="left" width="180"></el-table-column> <el-table-column prop="name" label="姓名" align="center" width="180"></el-table-column> <el-table-column prop="address" label="地址" align="right" width="260"></el-table-column> </el-table> </template> <script> export default { data() { return { tableData: [ { date: "2023-09-01", name: "张三", address: "北京市朝阳区" }, { date: "2023-09-02", name: "李四", address: "上海市浦东新区" } ] }; } }; </script> ``` 以上三种方案能够满足大多数情况下对于 `el-table-column` 列内容居中对齐的需求,并兼顾美观性和功能性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值