Vue3 +Element-Plus el-select下拉菜单样式(局部生效)

在这里插入图片描述

下拉框代码

<el-select
            class="buttons-switch-group select-hub"
            :teleported="false"
            style="width: 120px"
            v-model="queryParam.type"
            placeholder="请选择"
            size="mini"
            @change="loadData"
          >
            <el-option label="客运站" value="客运站"></el-option>
            <el-option label="高铁站" value="高铁站"></el-option>
            <el-option label="码头" value="码头"></el-option>
            <el-option label="火车站" value="火车站"></el-option>
            <el-option label="机场" value="机场"></el-option>
          </el-select>

样式穿透

.buttons-switch-group {
  --el-fill-color-blank: rgba(8, 20, 65, 0.3);
  --el-border: 1px solid #073f97;
  --el-text-color-regular: #dedfe4;
}
.select-hub:deep(.el-select__wrapper) {
  min-height: 0.875rem !important;
  min-width: 2rem !important;
  box-shadow: 0 0 0 1px #008cffff inset;
  border-image: linear-gradient(180deg, rgba(28, 173, 255, 1), rgba(0, 140, 255, 1)) 1 1;
}
.select-hub:deep(.el-popper.is-light .el-popper__arrow::before) {
  border: 1px solid #01194d !important;
  background: #01194d !important;
}

.select-hub:deep(.el-popper.is-light) {
  background: #01194d;
  //border: 1px solid #273f70;
}
.select-hub:deep(.el-select-dropdown__item) {
  text-align: left;
  background: #01194d;
  border: none;
  color: #fff;
}
### 关于 Element Plus 中 `el-select` 组件的使用指南 #### 使用指南 `el-select` 是 Element Plus 提供的一个下拉选择器组件,适用于从预定义选项中进行选择。该组件支持单选和多选模式,并提供了丰富的配置项来满足不同的需求。 为了更好地理解和使用 `el-select` 组件,可以参考官方文档中的说明[^2]: - **基础用法**:通过绑定 `v-model` 到数据源上实现双向数据绑定。 ```html <template> <el-select v-model="value"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </template> <script setup> import { ref } from &#39;vue&#39; const value = ref(&#39;&#39;) const options = [ { value: &#39;option1&#39;, label: &#39;Option 1&#39; }, { value: &#39;option2&#39;, label: &#39;Option 2&#39; } ] </script> ``` - **多选模式**:设置属性 `multiple=true` 即可开启多选功能。 ```html <el-select multiple v-model="selectedValues"></el-select> ``` 对于更复杂的场景,如带有分页的选择器或自定义渲染的内容,可以通过扩展的方式增强原生组件的功能。例如,在某些项目中已经实现了基于虚拟滚动技术优化性能的大规模数据集下的多选操作[TSelect组件新增虚拟列表多选功能及demo示例][^1]。 #### 示例展示 下面是一个简单的例子展示了如何创建一个多选带搜索功能的 `el-select` 控件: ```html <template> <div style="width: 300px;"> <el-select filterable multiple clearable placeholder="请选择" v-model="selectedItems"> <el-option v-for="(item, index) in items" :key="index" :label="item.name" :value="item.id"> </el-option> </el-select> </div> </template> <script setup> import { ref } from &#39;vue&#39; const selectedItems = ref([]) const items = Array.from({ length: 10 }, (_, i) => ({ id: `${i}`, name: `Item ${i}` })) </script> ``` 此外还有针对特定业务逻辑定制化的解决方案,比如当需要处理大量条目时引入懒加载机制或是利用第三方库完成复杂交互效果等[^3]。 #### 常见问题与解决方案 1. **无法正常显示占位符** 如果遇到更改后的样式生效的情况,则可能是因为默认类名被重置所致。此时应该采用深嵌套方式覆盖原有 CSS 类,确保新规则优先级更高[^4]: ```css .el-input__inner::placeholder { color: red !important; } /* 或者 */ ::v-deep(.el-input__inner::-webkit-input-placeholder){ color:red!important; } ``` 2. **远程搜索延迟过高影响用户体验** 对于此种情形建议调整 API 请求频率以及考虑加入缓存策略减少不必要的网络请求次数;另外也可以尝试提高服务器响应速度从而间接改善前端表现。 3. **清除按钮不起作用** 当设置了 `clearable` 属性却仍然发现点击清空图标无反应的时候,请确认是否正确绑定了事件处理器并检查是否有其他 JavaScript 错误阻止了默认行为的发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小熊学Java

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

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

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

打赏作者

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

抵扣说明:

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

余额充值