项目开发刚好遇到ElementUI下拉选项框select添加小图标这个问题,网上搜索了一下,并没有找到回答,就自己写下思路,
正常情况下是这样的初始状态的
初始代码是这样的
首先第一步,先在下拉框中添加小图标,如果没有类型要求的话直接使用:nth-child(odd)和:nth-child(even)选择器
如果有类型要求,比如说1是高热量食品,2是低热量食品,那么就添加一个:class动态绑定样式
效果图
如果觉得图片和文字在最左边不好看,可以使用相对定位右移一点,如果出现横向滚动条,则可以设置width为98%,这些不是太重要,接着讲第二步,要把select中的数据添加小图标,先给个左内边距,这是小图标放的位置,可以鼠标右键,点击检查,找到数据的样式,选择deep深度选择器,添加样式
接下来就是第三步给空出来的这个位置添加对应的小图标了,
先说下思路,第一小点,先把select隐藏掉,第二小点,创建一个新的div覆盖住隐藏的位置,第三小点,添加图标 + 数据 + ×
第一小点,把select隐藏可以用display:none或者是visibility:hidden,区别就是通过DOM删除节点和用css隐藏节点,两者都可以,隐藏后的效果图
顺便一提,第二步左内边距的设置可有可无(毕竟第三步都隐藏掉了),但既然写了,至少可以作为参考,然后是第二小点,创建一个新的span覆盖住select的内容,使用相对定位或者是绝对定位的方法
第三点,添加图标,先导入图片,直接import引入图片的静态资源地址
然后做下判定,筛选出想要的图片
等等,值好像跟内容有所偏差,比如说,第一个是黄金糕,结果显示的是选项1,那可以把{{item}}改成{{item1.label}}
好像完成的差不多了,还差了个×号,那么可以补一下<i class="el-icon-close"></i>,这个是×号的图标,想要变成圆形×号可以把el-icon-close改成el-icon-circle-close
好像点击×号没有反应,当然,因为没有添加点击事件,现在补个@click事件
注意点,@click="delectElement(index)"必须加index这个形参,index指的是当前删除的位置,然后使用数组的splice()方法删除想要删除的元素
好了,大功告成了,最后稍微加点样式美化下吧
源码就不发了,思路已经讲得够清楚了,如果有帮助的话希望可以点个赞,如果有可以改进的地方,麻烦多多指点,以上,谢谢。