[小技巧] element-ui 表格内容不垂直居中

本文介绍如何解决Element-UI的el-table-column在内容过长时自动垂直居中的问题,通过自定义CSS类实现顶部对齐,提升表格显示效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题呈现:

element-ui的el-table-column(相当于原生HTML的TD标签),默认是垂直居中的,这在大多数情况下是没问题的,如图:

但是,当单元格内内容很长的时候,表格被撑开就自动垂直居中了,看起来很别扭:

解决方案:

1. 首先设置属性className = "自定义css-class",此处如果直接写入style = "vertical-align: top" 是没用的。

<el-table-column
    label="列1"
    min-width="30%"
    className="my-cell"
>

2. 创建一个 .el-table下的 .my-cell类,只能是单纯的<style>,如果是写成<style scoped>这样,也没用。

<style>
  .el-table .my-cell {
    vertical-align: top
  }
</style>

3. 刷新页面,表格中的内容就不会垂直居中了。

### 如何使用 Element UI `el-tabs` 组件 #### 使用场景与基本结构 Element UI 的 `el-tabs` 是用于实现标签页效果的组件,适用于分隔同类别的内容或同一类别下同属性的内容。通过设置同的参数可以自定义样式和行为。 ```html <template> <div id="app"> <!-- 定义 tabs --> <el-tabs v-model="activeName" @tab-click="handleClick" stretch> <el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane> <el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane> <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane> <el-tab-pane label="定时任务补偿" name="fourth">定时任务补偿</el-tab-pane> </el-tabs> </div> </template> <script> export default { data() { return { activeName: 'first' }; }, methods: { handleClick(tab, event) { console.log(tab, event); } } }; </script> ``` 此代码展示了最基础的 `el-tabs` 和 `el-tab-pane` 结构[^1]。其中: - `v-model`: 双向绑定当前激活 tab 面板的名称。 - `@tab-click`: 当点击 Tab 时触发事件处理函数。 - `stretch`: 让 Tabs 平均分布占满整个容器宽度。 #### 居中显示标签项 为了使标签项居中显示,在 `<el-tabs>` 中添加 `style="text-align:center;"` 或者利用 CSS 类名来自定义样式。 ```css /* 自定义样式 */ .el-tabs__nav-wrap::after { background-color: transparent !important; } .el-tabs__header { text-align: center; } <style scoped> .tab-container >>> .el-tabs__item { flex-grow: 1; width: auto; display: inline-block; margin-right: 0px; } </style> ``` 上述 CSS 片段移除了默认底部线并调整了头部布局方式以达到居中的视觉效果。 #### 去除选项卡下的长线条 如果希望去掉 `el-tabs` 下方延伸至两端的横线,则可以在项目中引入特定样式覆盖原有设计[^2]。 ```scss // 移除 el-tabs 底部边框 /deep/ .el-tabs__nav-wrap::after { height: 0; } ``` 这里 `/deep/` 关键字用来穿透作用域样式限制,确保内部子元素也能应用到指定规则上。 #### 提升编码效率的小技巧 对于重复性的页面内容展示,可考虑将共通部分提取出来作为独立组件放置于 `el-tabs` 外侧,从而简化模板逻辑[^3]。 ```html <!-- 抽离公共区域 --> <div class="common-content"></div> <!-- 动态渲染具体面板 --> <el-tabs v-model="activeName"> <el-tab-pane :label="'动态' + index" :name="pane.name" v-for="(pane, index) in panes" :key="index"> {{ pane.content }} </el-tab-pane> </el-tabs> ``` 这样做仅减少了冗余代码量还提高了维护性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rockage

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值