vue里面父组件修改子组件样式的方法


Posted in Javascript onFebruary 03, 2018

在使用 vue 的开发中,我们有时会引用外部组件,包括 UI 组件(ElementUI、iview)。

当 <style> 标签有 scoped 属性时,它的 CSS 只作用于当前组件中的元素。

但是在父组件中添加 scoped 之后,父组件的样式将不会渗透到子组件中,所以在父组件中书写子组件的样式是无效果的。

一、去掉 scoped

在父组件的 <style> 中去掉 scoped 后,父组件中可以书写子组件的样式,但是你会担心这样会污染全局样式。

【因为我们知道正确使用全局样式的姿势是使用一个全局的 app.css】

二、混用本地和全局样式

你可以在一个组件中同时使用有作用域和无作用域的样式:

<style>
/* 全局样式 */
</style>
<style scoped>
/* 本地样式 */
</style>

我们把 需要修改子组件的样式 写在上面那个全局样式里面

三、使用深度作用选择器

如果你希望 scoped 样式中的一个选择器能够作用得“更深”,例如影响子组件,你可以使用 >>> 操作符:

<style scoped>
.a >>> .b {
 /* ... */
}
</style>

有些像 SASS 之类的预处理器无法正确解析 >>>。这种情况下你可以用 /deep/ 操作符取而代之 —— 这是一个 >>> 的别名,同样可以正常工作。

OK,主要内容就是以上几点。

需要额外补充的是:

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

2、CSS 作用域不能代替 class

3、在递归组件中小心使用后代选择器

以上这篇vue里面父组件修改子组件样式的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery DOM操作 基于命令改变页面
May 06 Javascript
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
Apr 02 Javascript
jquery SweetAlert插件实现响应式提示框
Aug 18 Javascript
五种js判断是否为整数类型方式
Dec 03 Javascript
js获取页面及个元素高度、宽度的代码
Apr 26 Javascript
js定义类的几种方法(推荐)
Jun 08 Javascript
Canvas实现放射线动画效果
Feb 15 Javascript
JavaScript实现一个空中避难的小游戏
Jun 06 Javascript
JS判断非空至少输入两个字符的简单实现方法
Jun 23 Javascript
利用百度地图API获取当前位置信息的实例
Nov 06 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
Nov 10 Javascript
JavaScript深入V8引擎以及编写优化代码的5个技巧
Jun 24 Javascript
vue中element组件样式修改无效的解决方法
Feb 03 #Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
Feb 03 #Javascript
Vue修改mint-ui默认样式的方法
Feb 03 #Javascript
vue+webpack实现异步组件加载的方法
Feb 03 #Javascript
基于vue-resource jsonp跨域问题的解决方法
Feb 03 #Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
Feb 03 #Javascript
vue-cli开发时,关于ajax跨域的解决方法(推荐)
Feb 03 #Javascript
You might like
可以在线执行PHP代码包装修正版
2008/03/15 PHP
PHP开发中四种查询返回结果分析
2011/01/02 PHP
Javascript 面向对象 对象(Object)
2010/05/13 Javascript
再说AutoComplete自动补全之实现原理
2011/11/05 Javascript
js操作iframe的一些方法介绍
2013/06/25 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
JQuery中serialize()用法实例分析
2015/02/06 Javascript
Javascript获取表单名称(name)的方法
2015/04/02 Javascript
jquery插件unobtrusive实现片段式加载
2015/06/15 Javascript
深入学习JavaScript对象
2015/10/13 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
基于JS实现无缝滚动思路及代码分享
2016/06/07 Javascript
Webpack如何引入bootstrap的方法
2017/06/17 Javascript
vue深入解析之render function code详解
2017/07/18 Javascript
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
2019/01/17 Javascript
vue-cli4项目开启eslint保存时自动格式问题
2020/07/13 Javascript
[01:06] DOTA2英雄背景故事第三期之秩序法则光之守卫
2020/07/07 DOTA
python实现多张图片拼接成大图
2019/01/15 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
python简单鼠标自动点击某区域的实例
2019/06/25 Python
Mac安装python3的方法步骤
2019/08/09 Python
浅谈tensorflow之内存暴涨问题
2020/02/05 Python
Python openpyxl 插入折线图实例
2020/04/17 Python
python的pip有什么用
2020/06/17 Python
瑞典首都斯德哥尔摩的多元奢侈时尚品牌:Acne Studios
2017/07/09 全球购物
【魔兽争霸3重制版】原版画面与淬火MOD画面对比
2021/03/26 魔兽争霸
教师评优的个人自我评价分享
2013/09/19 职场文书
技术总监岗位职责
2013/12/05 职场文书
网络管理专业求职信
2014/03/15 职场文书
企业安全生产责任书范本
2014/07/28 职场文书
绵山导游词
2015/02/05 职场文书
律师催款函范文
2015/06/24 职场文书
nginx限制并发连接请求数的方法
2021/04/01 Servers
vue实现水波涟漪效果的点击反馈指令
2021/05/31 Vue.js
win11无法添加打印机怎么办? 提示windows无法打开添加打印机的解决办法
2022/04/05 数码科技