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中回调函数的学习笔记
Jul 31 Javascript
Mac系统下Webstorm快捷键整理大全
May 28 Javascript
微信小程序之页面拦截器的示例代码
Sep 07 Javascript
Bootstrap实现的表格合并单元格示例
Feb 06 Javascript
vue项目中公用footer组件底部位置的适配问题
May 10 Javascript
vue移动端弹框组件的实例
Sep 25 Javascript
微信小程序中转义字符的处理方法
Mar 28 Javascript
详解vue.js移动端配置flexible.js及注意事项
Apr 10 Javascript
element-ui表格合并span-method的实现方法
May 21 Javascript
Angular8路由守卫原理和使用方法
Aug 29 Javascript
vue实现二级导航栏效果
Oct 19 Javascript
实例讲解React 组件生命周期
Jul 08 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
论建造顺序的重要性
2020/03/04 星际争霸
中东人咖啡哲学
2021/03/03 咖啡文化
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
2012/06/07 PHP
php通过文件头判断格式的方法
2016/05/28 PHP
List Installed Hot Fixes
2007/06/12 Javascript
JavaScript中Math对象使用说明
2008/01/16 Javascript
JavaScript Date对象使用总结
2009/05/14 Javascript
javascript new后的constructor属性
2010/08/05 Javascript
简短几句 通俗解释javascript的闭包
2011/01/17 Javascript
jquery获取一组checkbox的值(实例代码)
2013/11/04 Javascript
使用JS+plupload直接批量上传图片到又拍云
2014/12/01 Javascript
JavaScript和CSS交互的方法汇总
2014/12/02 Javascript
基于socket.io+express实现多房间聊天
2016/03/17 Javascript
关于原生js中bind函数的简单实现
2016/08/10 Javascript
JS使用正则实现去掉字符串左右空格的方法
2016/12/27 Javascript
jquery代码规范让代码越来越好看
2017/02/03 Javascript
JS实现随机点名器
2020/04/12 Javascript
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
Python生成数字图片代码分享
2017/10/31 Python
Python中实现switch功能实例解析
2018/01/11 Python
python实现图像识别功能
2018/01/29 Python
使用apidocJs快速生成在线文档的实例讲解
2018/02/07 Python
python提取图像的名字*.jpg到txt文本的方法
2018/05/10 Python
ubuntu16.04制作vim和python3的开发环境
2018/09/23 Python
Django框架验证码用法实例分析
2019/05/10 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
2020/06/02 Python
python邮件中附加文字、html、图片、附件实现方法
2021/01/04 Python
奥地利顶级内衣丝袜品牌英国站:Wolford英国
2016/08/29 全球购物
经典c++面试题四
2015/05/14 面试题
酒店秘书求职信范文
2014/02/17 职场文书
一份文言文检讨书
2014/09/13 职场文书
大学生实习证明范本
2014/09/19 职场文书
个人工作作风整改措施思想汇报
2014/10/13 职场文书
党小组鉴定意见
2015/06/02 职场文书
优秀学生干部主要事迹材料
2015/11/04 职场文书