因为用了elementUI的组件库,一个页面用到了el-dialog,需要改一下样式,但<style>中设置了scoped后样式并不生效。
因为vue的scoped为本组件的所有标签都打上了一个唯一attribute,样式生效时也带上了这唯一的attribute,但是本组件应用的所有子组件,除根标签以为其他都未打上这唯一标签,因此样式自然不会生效。
vue 自动添加一个唯一的 attribute
添加了唯一的attribute,这也就是vue scoped 实现样式隔离的原理。
如果不怕影响别的页面的话把scoped删掉之后样式即可生效。
不删除scoped的解决办法:
查了一下官方解决办法
vue官方给出的解决办法是: 深度作用选择器
<style scoped>
::v-deep .el-dialog {
background-color: #0c1d3f;
}
</style>
还可以用/deep/、 >>>、::v-deep。文章来源:https://www.toymoban.com/news/detail-533659.html
/deep/在vue 3.0会报错,可使用::v-deep文章来源地址https://www.toymoban.com/news/detail-533659.html
到了这里,关于vue中style设置scoped后部分样式不生效的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!