vue3+ElementPlus: 调整el-table表格的默认样式

需求:调整el-table表格的默认样式,直接在el-table和el-table-column上设置style并不会生效,需要在调试模式下(鼠标右击,选择“检查”)查看表格元素的实际位置,并设置其样式。

代码

先上代码。在HTML代码中,定义了el-table,并设置其class=“mainTable”(也可直接在css中使用.el-table),对其进行样式调整的CSS代码如下:

<style scoped>
:deep(.mainTable th .cell){
    text-align: center;
    font-weight: bold;
    color:black
}
:deep(.mainTable td .cell){
    padding:2px 2px;
    text-align: center;
}
</style>

说明:

scoped

当一个style标签拥有scoped属性时候,它的css样式只能用于当前的Vue组件,可以使组件的样式不相互污染。

:deep()

scoped穿透,从而能影响到子组件
在vue3 + vite 中,建议使用:deep()代替/deep/的方式

### Vue3 Element Plus Table 表头纵向布局实现 在Vue3Element Plus框架下,要实现`el-table`组件的表头纵向布局,可以借鉴HTML原生表格的设计思路[^1]。通常情况下,`el-table`默认支持的是横向表头展示方式;然而通过调整数据结构以及利用CSS样式自定义功能,则能够达到纵向排列的效果。 对于想要创建具有纵向表头样式表格而言,核心在于改变原本的数据绑定模式——不再是按照行来组织数据项而是依据列来进行划分。具体来说,在准备用于渲染表格的数据源时,应该构建一个多维数组或对象列表形式的数据集,其中每一项代表一整列而非传统意义上的一行记录。 为了更好地理解如何操作,请参见下面给出的一个简单实例: ```javascript // 假设这是我们的原始数据 const rawData = [ { name: &#39;Alice&#39;, age: 24, address: &#39;Beijing&#39; }, { name: &#39;Bob&#39;, age: 27, address: &#39;Shanghai&#39; } ]; // 转换成适合纵向表头的形式 const transformedData = Object.keys(rawData[0]).map(key => ({ label: key, values: rawData.map(item => item[key]) })); ``` 接着就是关于模板部分了。这里会采用嵌套循环的方式来遍历转换后的数据并将其映射到相应的UI元素上。值得注意的是,由于Element UI并没有直接提供针对这种情况的支持选项,因此可能还需要额外编写一些定制化的样式规则以确保最终呈现效果符合预期。 ```html <template> <div class="vertical-header-table"> <!-- 使用 div 或其他容器模拟 table 结构 --> <div v-for="(column, columnIndex) in columns" :key="columnIndex" class="table-column"> <span>{{ column.label }}</span> <!-- 显示列名作为表头 --> <ul> <li v-for="(value, rowIndex) in column.values" :key="rowIndex">{{ value }}</li> </ul> </div> </div> </template> <script setup lang="ts"> import { ref } from "vue"; let columns = ref([ { label: "Name", values: ["Alice", "Bob"] }, { label: "Age", values: [24, 27] }, { label: "Address", values: ["Beijing", "Shanghai"] } ]); </script> <style scoped> .vertical-header-table .table-column { float: left; } .table-column span { font-weight: bold; } </style> ``` 上述代码片段展示了怎样基于给定的数据模型构造出一个具备基本交互能力的垂直方向上的表头表格。当然这只是一个非常基础的例子,实际应用当中或许还会涉及到更复杂的场景比如分页、筛选等功能集成等问题[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值