el-autocomplete修改默认样式 不生效问题(已解决)

导读:本篇文章讲解 el-autocomplete修改默认样式 不生效问题(已解决),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

问题:修改el-autocomplete 默认样式 重写 覆盖 使用深度选择器 也还是没有解决问题

原因:发现渲染后的dom元素不在#app元素内部。原来是el-autocomplete里面的.el-popper元素渲染后会脱离#app。所以使用深度选择器也无法定位该元素。

解决办法:研究文档发现el-autocomplete组件自带的一个属性可以解决问题
在这里插入图片描述
方法如下:
在el-autocomplete 上增加一个属性:popper-append-to-body=“false”,这个属性用于将渲染后的元素放入#app元素。
在这里插入图片描述
代码:

 :popper-append-to-body="false"

添加该属性完成后,再使用深度选择器修改就可以了
参考博文:https://blog.csdn.net/qq_44747461/article/details/106140453
css 代码示例:(我这里是需要改下拉框的背景颜色以及选中某一项的字体颜色0 ~)

::v-deep .el-popper {
  background: #2b2c2c !important;
  border: 1px solid #2b2c2c !important;
}
::v-deep .el-autocomplete-suggestion__list :hover {
  color: #aaaaaa !important;
}
总结:
1.<style lang="scss" scope>中的scope去掉,此时变为全局的样式,为了确保其他单页面中相应元素的样式不会随之改变,需要用当前的父级定位该元素,即在其父级上添加一个class,在修改对应的子元素样式,并且再刷新浏览器(重要!),才能生效。(作为修改样式的首选)
2.(不推荐使用/deep/深度选择器,因为只适用于chrome浏览器,存在浏览器兼容问题),因为我这边是项目封装了一个全局样式文件 使用的就是deep 所以就没有改动呢~
3.示例:修改el-date-picker样式:
增加popper-class 设置新的样式如:popper-class="date-style"

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/79309.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!