发现的问题

        最近在学习中发现,Element Plus中el-popper的部分样式无法修改,如下拉框的小箭头:

通过样式穿透、行内style、popper-class等方式均无法修改

出现问题的原因

        通过网上查阅资料发现,其主要是因为 el-popover 生成的div不在当前组件之内,甚至不在App.vue组件的div内,他和App.vue组件的div平级。因此在组件中是无法直接修改的。

找到的解决方法   

        1、不加scoped,可以直接通过Element Plus提供的popper-class修改:

        2、添加scoped、部分无法在scoped修改的,在当前文件中再添加一个<style></style>,在这里面通过popper-class修改:

        3、使用一个全局的样式文件,通过popper-class指定其样式,也可以修改(其中.nav-logined-dropdown为指定的popper-class):

        个人感觉第二种方法好一些,平常的开发有严格的规范,用scoped确保样式只应用于当前组件的元素,而不影响其他组件。对于实在无法修改的样式,额外在新的<style>里通过popper-class去修改,减少样式污染。

遗留问题

        虽然scoped下无法修改,不过很多样式可以通过样式穿透修改,此时就出现了一些问题,el-popper下的列表元素可以通过样式穿透修改,但其外层元素却无法修改,其中就包括下拉框的小箭头。

        学艺不精,如有大佬看见望解答。以及上述内容只是对自己学习过程中的问题记录,以及部分解决方法,不一定是最优解😁。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐