【element-plus使用】el-select自定义样式、下拉框选项过长等问题解决

1、自定义样式

复制代码
<template>
  <el-select v-model="value" style="width: 150px">
    <el-option label="选项一" value="option1"></el-option>
    <el-option label="选项二" value="option2"></el-option>
    <el-option label="选项三" value="option3"></el-option>
  </el-select>
</template>
.el-select-dropdown__item {
  background-color: #e6f7ff;
  color: #333;
}

参考

2、下拉框宽度自适应或自定义

  • 如果需要使下拉框的宽度和选项框一致,可以设置::fit-input-width="true"
    参考代码:
javascript 复制代码
<el-select v-model="form.name" clearable filterable :fit-input-width="true">
	<el-option v-for="item in List" :key="item.id" :value="item.value" :title="item.value" />
</el-select>

选项的超出部分就会变成...

  • 如果要自定义下拉框的宽度,则可以参考如下代码实现
javascript 复制代码
<el-select v-model="value" :popper-append-to-body="false" popper-class="my-select">
  <el-option
    v-for="item in options"
    :key="item.value"
    :label="item.label"
    :value="item.value"
    :title="item.label"
  >
  </el-option>
</el-select>
 
<style>
.my-select .el-select-dropdown__item {
  width: 300px;
  display: inline-block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
</style>

选项的超出部分就会变成...参考(里面还有种方法是用横向滚动条,但感觉用户体验会不太好,pass)

补充:如果不希望选项超出部分变成...,直接都完整展示每个选项。可以参考下面的写法:

(我还没试过;是群里uu提供的)

3、选项过长且为...之后的优化

如果选项后面的内容变成了...,肯定是要优化一下的,不然用户体验也不好。

鼠标悬浮上去后展示完整内容(简单版)

这有个最简单的实现方法,上面2段代码中其实也已经出现了::title="item.label"

鼠标悬浮后展示完整内容(结合el-tooltip版)

el-select 下拉框选项文字内容过长

(没试过- -)

4、扩展:

el-select的远程加载选项写法;可以学一学
vue3+ts+element plus自定义el-select下拉选择器组件封装

相关推荐
风骏时光牛马2 分钟前
大模型落地实践中的技术选型思路与方案对比
前端
IT_陈寒28 分钟前
Vite打包时的静态资源坑,我帮你踩过了
前端·人工智能·后端
默_笙2 小时前
🔥 让 AI 帮我写完整个 Next.js 博客:框架就是 AI 的"上下文 buff"
前端·javascript
牧艺2 小时前
登录页还在用渐变?我一口气做了 5 个能摸的背景动效:吹蒲公英、滴墨染水、点熔岩闷裂
前端·canvas·交互设计
陆枫Larry2 小时前
状态机简介
前端
陆枫Larry3 小时前
一次登录问题排查:接口没错,错的是旧业务逻辑
前端
小小小小宇3 小时前
大模型打分与采样原理,以及 Pi Agent 核心原理
前端
一位正在转型AI全栈的前端工程师3 小时前
AI 全栈学习之旅 -Week 5:RAG 知识库问答系统:从零到生产级部署的全栈实践总结
前端·python
光影少年4 小时前
react navite 安卓iOS 打包、签名、环境区分
前端·react native·react.js
coderCN4 小时前
Nodejs 第三十四章 数据库(表达式和函数、子查询和连表)
前端·node.js