vue组件中的样式属性scoped实例详解


Posted in Javascript onOctober 30, 2018

Scoped CSS

Scoped CSS规范是Web组件产生不污染其他组件,也不被其他组件污染的CSS规范。

vue组件中的style标签标有scoped属性时表明style里的css样式只适用于当前组件元素

 它是通过使用PostCSS来改变以下内容实现的:

<style scoped>
.example {
 color: red;
}
</style>

<template>
 <div class="example">hi</div>
</template>

渲染结果:

<style>
.example[data-v-f3f3eg9] {
 color: red;
}
</style>

<template>
 <div class="example" data-v-f3f3eg9>hi</div>
</template>

混合使用全局属性和局部属性

<style>
/* global styles */
</style>

<style scoped>
/* local styles */
</style>

关于子组件的根元素

使用了scoped属性之后,父组件的style样式将不会渗透到子组件中,然而子组件的根节点元素会同时被设置了scoped的父css样式和设置了scoped的子css样式影响,这么设计的目的是父组件可以对子组件根元素进行布局。
.vue模板中的样式是根据需要按需加载,访问一个页面该组件中的样式就会追加到head标签中,如果父子组件中都对某个子组件根节点元素进行了控制,则父组件里的样式会被后来的覆盖。

深选择器

如果想对设置了scoped的子组件里的元素进行控制可以使用'>>>'或者'deep'

<template>
 <div id="app">
  <gHeader></gHeader>
 </div>
</template>

<style lang="css" scoped>
 .gHeader /deep/ .name{ //第一种写法
  color:red;
 }
 .gHeader >>> .name{  //二种写法
  color:red;
 }
</style>

<div class="gHeader">
 <div class="name"></div>
</div>

一些预处理程序例如sass不能解析>>>属性,这种情况下可以用deep,它是>>>的别名,工作原理相同。

动态生成的内容

使用v-html动态创建的DOM内容,不受设置scoped的样式影响,但你依然可以使用深选择器进行控制

下面给大家补充下vue中使用v-html加载的富文本,css中定义样式不生效

如题,使用v-html加载一段富文本,富文本里包含图片,在手机上图片宽度可能会溢出

<div v-html="htmlContent" class="rich"></div> 
  <style scope>
  .rich>>> img{ display:block; max-width: 100%}
  </style>

注意:这里的>>>需要使用css语法,写在less里会报错

总结

以上所述是小编给大家介绍的vue组件中的样式属性scoped实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JS的get和set使用示例
Feb 20 Javascript
js实现按钮加背景图片常用方法
Nov 01 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
May 14 Javascript
JS使用正则表达式过滤多个词语并替换为相同长度星号的方法
Aug 03 Javascript
javascript之IE版本检测超简单方法
Aug 20 Javascript
Centos7 中 Node.js安装简单方法
Nov 02 Javascript
Bootstrap表单简单实现代码
Mar 06 Javascript
angular2中使用第三方js库的实例
Feb 26 Javascript
React中嵌套组件与被嵌套组件的通信过程
Jul 11 Javascript
Vue组件通信入门之Provide和Inject机制
Dec 29 Javascript
vue 弹出遮罩层样式实例
Jul 22 Javascript
5种 JavaScript 方式实现数组扁平化
Oct 05 Javascript
node上的redis调用优化示例详解
Oct 30 #Javascript
elementUI 设置input的只读或禁用的方法
Oct 30 #Javascript
Vue.js 父子组件通信的十种方式
Oct 30 #Javascript
vue通过style或者class改变样式的实例代码
Oct 30 #Javascript
vue通过cookie获取用户登录信息的思路详解
Oct 30 #Javascript
微信小程序实现左滑修改、删除功能
Oct 19 #Javascript
小程序实现列表删除功能
Oct 30 #Javascript
You might like
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
linux mint下安装phpstorm2020包括JDK部分的教程详解
2020/09/17 PHP
JS 的应用开发初探(mootools)
2009/12/19 Javascript
jQuery代码优化 选择符篇
2011/11/01 Javascript
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
2013/06/26 Javascript
jquery 获取表单元素里面的值示例代码
2013/07/28 Javascript
jquery的live使用注意事项
2014/02/18 Javascript
jQuery Ajax()方法使用指南
2014/11/19 Javascript
JavaScript实现判断图片是否加载完成的3种方法整理
2015/03/13 Javascript
JS实现黑色大气的二级导航菜单效果
2015/09/18 Javascript
JavaScript 继承详解(五)
2016/10/11 Javascript
JavaScript正则表达式的贪婪匹配和非贪婪匹配
2017/09/05 Javascript
如何使用pm2快速将项目部署到远程服务器
2019/03/12 Javascript
详解vue配置后台接口方式
2019/03/29 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
2019/03/29 Javascript
详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)
2020/07/11 Javascript
[02:51]2018年度DOTA2最佳中单位选手-完美盛典
2018/12/17 DOTA
[52:12]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python爬取京东的商品分类与链接
2016/08/26 Python
深入理解Python对Json的解析
2017/02/14 Python
Python使用内置json模块解析json格式数据的方法
2017/07/20 Python
python将视频转换为全字符视频
2019/04/26 Python
python每天定时运行某程序代码
2019/08/16 Python
python定间隔取点(np.linspace)的实现
2019/11/27 Python
kafka-python 获取topic lag值方式
2019/12/23 Python
Linux系统下升级pip的完整步骤
2021/01/31 Python
HTML5 Canvas的性能提高技巧经验分享
2013/07/02 HTML / CSS
HTML5利用约束验证API来检查表单的输入数据的代码实例
2016/12/20 HTML / CSS
Tory Burch美国官方网站:美国时尚生活品牌
2016/08/01 全球购物
美国波西米亚风格服装品牌:Show Me Your Mumu
2018/01/05 全球购物
Paradox London官方网站:英国新娘鞋婚礼鞋品牌
2019/08/29 全球购物
局部内部类是否可以访问非final变量?
2013/04/20 面试题
绿色环保演讲稿
2014/05/10 职场文书
当幸福来敲门观后感
2015/06/01 职场文书
利用Python判断你的密码难度等级
2021/06/02 Python
Java 垃圾回收超详细讲解记忆集和卡表
2022/04/08 Java/Android