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 计算iframe 窗口大小的方法
May 13 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
Nov 26 Javascript
JS封装cookie操作函数实例(设置、读取、删除)
Nov 17 Javascript
浅谈javascript中onbeforeunload与onunload事件
Dec 10 Javascript
浅谈js for循环输出i为同一值的问题
Mar 01 Javascript
JavaScript数据结构之链表的实现
Mar 19 Javascript
js精确的加减乘除实例
Nov 14 Javascript
vue源码解析之事件机制原理
Apr 21 Javascript
Vue实现点击时间获取时间段查询功能
Aug 21 Javascript
js对象数组和对象的使用实例详解
Aug 27 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
Sep 26 Javascript
如何使用CocosCreator对象池
Apr 14 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中几个常用的魔术常量
2012/02/23 PHP
php牛逼的面试题分享
2013/01/18 PHP
smarty模板引擎之内建函数用法
2015/03/30 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
2016/01/07 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
Javascript的一种模块模式
2008/03/22 Javascript
JavaScript 对象模型 执行模型
2010/10/15 Javascript
jQuery EasyUI API 中文文档 - Parser 解析器
2011/09/29 Javascript
javascript通过navigator.userAgent识别各种浏览器
2013/10/25 Javascript
关于js数组去重的问题小结
2014/01/24 Javascript
jquery Validation表单验证使用详解
2020/09/12 Javascript
jquery编写Tab选项卡滚动导航切换特效
2020/07/17 Javascript
jquery自定义插件——window的实现【示例代码】
2016/05/06 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
2016/07/05 Javascript
js Canvas实现圆形时钟教程
2016/09/19 Javascript
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
js实现5秒倒计时重新发送短信功能
2017/02/05 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
微信小程序非跳转式组件授权登录的方法示例
2019/05/22 Javascript
Openlayers实现图形绘制
2020/09/28 Javascript
[44:47]Ti4 循环赛第三日 iG vs NaVi
2014/07/12 DOTA
python实现通过代理服务器访问远程url的方法
2015/04/29 Python
浅析Python编写函数装饰器
2016/03/18 Python
使用Python实现博客上进行自动翻页
2017/08/23 Python
python MySQLdb使用教程详解
2018/03/20 Python
python版本单链表实现代码
2018/09/28 Python
浅析Python __name__ 是什么
2020/07/07 Python
纯CSS和jQuery实现的在页面顶部显示的进度条效果2例(仿手机浏览器进度条效果)
2014/04/16 HTML / CSS
英国皇家邮政海外旗舰店:Royal Mail
2018/02/21 全球购物
国贸专业个人求职信范文
2014/01/08 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
投资申请报告
2015/05/19 职场文书
党员转正介绍人意见
2015/06/03 职场文书
重阳节主题班会
2015/08/17 职场文书
新娘婚礼答谢词
2015/09/29 职场文书