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 相关文章推荐
javascript语句中的CDATA标签的意义
May 09 Javascript
javascript window.opener的用法分析
Apr 07 Javascript
javascript+xml实现简单图片轮换(只支持IE)
Dec 23 Javascript
通过隐藏iframe实现文件下载的js方法介绍
Feb 26 Javascript
JS实现图片放大镜效果的方法
Feb 27 Javascript
浅析Bootstrap表格的使用
Jun 23 Javascript
import与export在node.js中的使用详解
Sep 28 Javascript
vue自定义filters过滤器
Apr 26 Javascript
一文读懂ES7中的javascript修饰器
May 06 Javascript
使用 node.js 模仿 Apache 小部分功能
Jul 07 Javascript
如何给element添加一个抽屉组件的方法步骤
Jul 14 Javascript
原生JavaScript实现购物车
Jan 10 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
PHP单元测试配置与使用方法详解
2019/12/27 PHP
两个Javascript小tip资料
2010/11/23 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
2013/05/31 Javascript
jquery简单的拖动效果实现原理及示例
2013/07/26 Javascript
让jQuery Mobile不显示讨厌loading界面的方法
2014/02/19 Javascript
js中实现多态采用和继承类似的方法
2014/08/22 Javascript
JavaScript中使用Object.create()创建对象介绍
2014/12/30 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
JQuery中绑定事件(bind())和移除事件(unbind())
2015/02/27 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
2015/03/03 Javascript
JS实现超简单的仿QQ折叠菜单效果
2015/09/21 Javascript
javascript Slip.js实现整屏滑动的手机网页
2015/11/25 Javascript
javascript回到顶部特效
2016/07/30 Javascript
JS制作图形验证码实现代码
2020/10/19 Javascript
JavaScript设计模式之单例模式详解
2017/06/09 Javascript
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
解决js ajax同步请求造成浏览器假死的问题
2018/01/18 Javascript
jQuery操作元素追加内容示例
2020/01/10 jQuery
jQuery 动画与停止动画效果实例详解
2020/05/19 jQuery
详解vue中v-on事件监听指令的基本用法
2020/07/22 Javascript
[02:20]DOTA2亚洲邀请赛 IG战队出场宣传片
2015/02/07 DOTA
[01:52]PWL S2开团时刻第四期——DOTA2成语故事
2020/12/03 DOTA
python实现人民币大写转换
2018/06/20 Python
对Python的zip函数妙用,旋转矩阵详解
2018/12/13 Python
Python3.5实现的罗马数字转换成整数功能示例
2019/02/25 Python
Python企业编码生成系统之系统主要函数设计详解
2019/07/26 Python
详解Python用三种方式统计词频的方法
2019/07/29 Python
Python原始套接字编程实例解析
2020/01/29 Python
Pytorch .pth权重文件的使用解析
2020/02/14 Python
中国医药集团国药在线:国药网
2017/02/06 全球购物
Nike墨西哥官网:Nike MX
2020/08/30 全球购物
服装电子商务创业计划书
2014/01/30 职场文书
公务员综合考察材料
2014/02/01 职场文书
党校学习心得体会范文
2014/09/09 职场文书
党员反对四风思想汇报范文
2014/10/25 职场文书
公司酒会主持词
2015/07/02 职场文书