博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue之样式问题
阅读量:6564 次
发布时间:2019-06-24

本文共 780 字,大约阅读时间需要 2 分钟。

在样式开发过程中,有两个问题比较突出:

  • 全局污染 —— CSS 文件中的选择器是全局生效的,不同文件中的同名选择器,根据 build 后生成文件中的先后顺序,后面的样式会将前面的覆盖;

  • 选择器复杂 —— 为了避免上面的问题,我们在编写样式的时候不得不小心翼翼,类名里会带上限制范围的标示,变得越来越长,多人开发时还很容易导致命名风格混乱,一个元素上使用的选择器个数也可能越来越多,最终导致难以维护。

vue 为我们提供了  可以很方便的解决上述问题,它给 css 加了一个域的概念。详细文档见 

/* 编译前 */.example {  color: red;}/* 编译后 */.example[_v-f3f3eg9] {  color: red;}

 

注意⚠️:

1、只要加上 <style scoped> 这样 css 就只会作用在当前组件内了。

2、使用 scoped 后,父组件的样式将不会渗透到子组件中。不过一个子组件的根节点会同时受其父组件的 scoped CSS 和子组件的 scoped CSS 的影响。这样设计是为了让父组件可以从布局的角度出发,调整其子组件根元素的样式。

3、如果你希望 scoped 样式中的一个选择器能够作用得“更深”,例如影响子组件,可以使用 >>> 操作,Sass 之类的预处理器无法正确解析 >>>。这种情况下你可以使用 /deep/ 操作符取而代之——这是一个 >>> 的别名,同样可以正常工作。

 编译后为:

.a[data-v-f3f3eg9] .b { /* ... */ }

4、通过 v-html 创建的 DOM 内容不受 scoped 样式影响,但是你仍然可以通过深度作用选择器来为他们设置样式。

 

转载于:https://www.cnblogs.com/catherLee/p/10072701.html

你可能感兴趣的文章
DQL、DML、DDL、DCL区别
查看>>
Windows下编程--模拟时钟的实现
查看>>
二十一、MySQL NULL 值处理
查看>>
12、NIO--Path、、Paths、Files
查看>>
【uva 12174】Shuffle(算法效率--滑动窗口)
查看>>
input placeholder属性IE、360浏览器兼容性问题
查看>>
unix2dos/dos2unix
查看>>
svn
查看>>
Codeforces Round #446 (Div. 2) A. Greed【模拟】
查看>>
leetcode
查看>>
590. N叉树的后序遍历
查看>>
Jquery easyui 重置按钮,easyui 清空表单,Jquery easyui 重置表单
查看>>
三级联动使用Jquery和bootstrap进行布局
查看>>
对组件库对再次封装
查看>>
最近写了个自动填写调查的问卷的简单爬虫
查看>>
几个字符串方法
查看>>
PHP命令行参数
查看>>
2091操作系统引论
查看>>
应用程序已预编译,因此不允许使用目录“/App_Code/”
查看>>
软件工程第二次作业—结对编程1
查看>>