通过移动el-select的代码解决elementUI中无法修改下拉框的样式的问题
Admin 2023-04-10 群英技术资讯 990 次浏览
1.定义颜色选择器组件
话不多说,直接上代码
<template> <el-select ref="colorSelect" placeholder="" v-model="myColor" style="width: 100%" @change="handleChange"> <el-option v-for="item in colorList" :key="item" label=" " :value="item" v-html="'<div style=background-color:'+ item+';width:' +'100%'+';height:'+'90%'+'></div>'"> </el-option> </el-select> </template> <script> export default { name: "colorSelect", //允许一个自定义组件在使用 v-model 时定制 prop 和 event。默认情况下,一个组件上的 v-model 会把 value 用作 prop 且把 input 用作 event,但是一些输入类型比如单选框和复选框按钮可能想使用 value prop 来达到不同的目的。使用 model 选项可以回避这些情况产生的冲突。 model: { prop: 'color', event: 'update' }, props: { //颜色数组 colorList: { type: Array, default: () => { return ["#FFC0CB", "#DB7093", "#FF1493", "#DC143C"]; } }, //父组件绑定的值 color: { type: String, default: undefined } }, data() { return { myColor: undefined } }, methods: { //设置颜色选择框中颜色 setSelectColor(color) { //通过操作dom节点改变样式 this.$nextTick(() => { let dom = this.$refs.colorSelect; if (dom) { dom = dom.$el.children[0]; let inputDom = dom.querySelectorAll(".el-input__inner"); let icon = dom.querySelectorAll(".el-input__icon"); inputDom[0].style["background-color"] = color; icon[0].style["color"] = "black"; } }) }, handleChange(val) { this.setSelectColor(val); //触发update事件更新父组件绑定值 this.$emit('update', val); } }, created() { if (this.color && this.color.length > 0) { this.myColor = this.color; this.setSelectColor(this.color) } }, watch: { 'color': function (val) { this.setSelectColor(val); } } } </script> <style scoped> </style>
组件使用了model,不明白的可以查看官网https://cn.vuejs.org/v2/api/#model
1.引入子组件
具体进入路径要看你的子组件位置
import colorSelect from "../../../elements/colorSelect";
2.声明组件
在components中声明组件
components: { colorSelect }
3.子组件使用
在data中定义自己的颜色数组与绑定属性
data(){ //颜色初始数据 colorList: ["#FFC0CB", "#DB7093", "#FF1493", "#DC143C", "#DDA0DD", "#DA70D6", "#FF00FF", "#9370DB", "#800080", "#6495ED", "#4169E1", "#0000FF", "#87CEEB", "#E1FFFF", "#00FFFF", "#7FFFAA", "#00FF7F", "#008000", "#FFFFE0", "#FFFF00", "#FFD700", "#F5DEB3", "#FFA500", "#CD5C5C"], //可设置默认值 color:'#FFC0CB' }
使用
<color-select :color-list="colorList" v-model="color"></color-select>
完(最后贴图一张)
在项目开发过程中,需要用到下拉框,于是想到使用elementUI中的下拉框
就是需要修改一下字体颜色和背景颜色
/deep/.el-input__inner { background-color: rgba(108,113,127,30%); border: 1px solid rgba(13, 43, 81, 0.1); color: rgba(116, 116, 116, 1); padding: 0 0px 0 5px; font-size: 12px; border-radius: 0px; }
至此都是顺利的,但是在修改背景图片的时候,在浏览器上修改可以生效的样式,写到代码里就不生效了,于是开始百度之旅
/deep/.el-select-dropdown{ background-color: rgb(51 55 64)!important; /* background-color: #f0f; */ color: rgba(116, 116, 116, 1)!important; border: none; }
官方的解释:
Popper-append-to-body属性是Element-UI官方文档中提供的一个属性,该属性的用途就是将el-select选项的内容移动div#app当中,默认值是true
:popper-append-to-body="false"
自此,问题解决!
到此,关于“通过移动el-select的代码解决elementUI中无法修改下拉框的样式的问题”的学习就结束了,希望能够解决大家的疑惑,另外大家动手实践也很重要,对大家加深理解和学习很有帮助。如果想要学习更多的相关知识,欢迎关注群英网络,小编每天都会给大家分享实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了JavaScript中对于SPA单页面的理解,单页应用SPA是一种网络应用程序或网站的模型,它通过动态重写当前页面来与用户交互
这篇文章主要为大家详细介绍了javascript实现随机抽奖功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本篇文章给大家带来了关于JavaScript的相关知识,其中主要整理了函数的定义与基本使用的相关问题,包括了用函数语句定义、函数的调用、未定义的实参等等内容,下面一起来看一下,希望对大家有帮助。
在一些APP上有左滑可以删除的功能,这样操作起来很反方便,我们在做微信小程序开发的时候也可以做这样的效果,那么具体该如何实现小程序左滑删除的功能呢?下面是实现效果及代码,大家可以了解看看。
这篇文章主要为大家详细介绍了vue实现手机验证码登录,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008