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键盘上下左右键怎么触发function(实例讲解)
Dec 14 Javascript
JavaScript简单实现鼠标拖动选择功能
Mar 06 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
Apr 04 Javascript
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
Mar 05 Javascript
学习JavaScript设计模式之观察者模式
Apr 22 Javascript
基于JS快速实现导航下拉菜单动画效果附源码下载
Oct 27 Javascript
完美解决jQuery 鼠标快速滑过后,会执行多次滑出的问题
Dec 08 Javascript
JS实现线性表的链式表示方法示例【经典数据结构】
Apr 11 Javascript
JS 实现百度搜索功能
Feb 01 Javascript
基于Vue-cli快速搭建项目的完整步骤
Nov 03 Javascript
vuex分模块后,实现获取state的值
Jul 26 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
Dec 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
经典的PHPer为什么被认为是草根?
2007/04/02 PHP
PHP实现的简单缓存类
2015/07/29 PHP
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
ExtJS下书写动态生成的xml(兼容火狐)
2013/04/02 Javascript
顶部缓冲下拉菜单导航特效的JS代码
2013/08/27 Javascript
jquery 快速回到页首的方法
2013/12/05 Javascript
javascript跨域原因以及解决方案分享
2015/04/08 Javascript
详细分析使用AngularJS编程中提交表单的方式
2015/06/19 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
2015/08/31 Javascript
HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
2015/11/25 Javascript
分享javascript实现的冒泡排序代码并优化
2016/06/05 Javascript
BootStrap fileinput.js文件上传组件实例代码
2017/02/20 Javascript
jQuery简单实现遍历单选框的方法
2017/03/06 Javascript
javaScript实现滚动条事件详解
2020/03/24 Javascript
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
vue项目中使用scss的方法步骤
2019/05/16 Javascript
python打开文件并获取文件相关属性的方法
2015/04/23 Python
详解Python中dict与set的使用
2015/08/10 Python
分析python动态规划的递归、非递归实现
2018/03/04 Python
Python遍历numpy数组的实例
2018/04/04 Python
Python实现链表反转的方法分析【迭代法与递归法】
2020/02/22 Python
python中if及if-else如何使用
2020/06/02 Python
详解CSS3中nth-child与nth-of-type的区别
2017/01/05 HTML / CSS
突袭HTML5之Javascript API扩展3—本地存储全新体验
2013/01/31 HTML / CSS
入团者的自我评价分享
2013/12/02 职场文书
上课玩手机检讨书
2014/02/08 职场文书
小学生学雷锋演讲稿
2014/04/25 职场文书
办理房产过户的委托书
2014/09/14 职场文书
先进教育工作者事迹材料
2014/12/23 职场文书
2015年医德考评自我评价
2015/03/03 职场文书
2015年社区创卫工作总结
2015/04/21 职场文书
有关水浒传的读书笔记
2015/06/25 职场文书
在CSS中映射鼠标位置并实现通过鼠标移动控制页面元素效果(实例代码)
2021/04/22 HTML / CSS
Python常用配置文件ini、json、yaml读写总结
2021/07/09 Python
php去除数组中为0的元素的实例分析
2021/11/17 PHP