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 相关文章推荐
Jquery选择器 $实现原理
Dec 02 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
May 22 Javascript
ztree获取当前选中节点子节点id集合的方法
Feb 12 Javascript
点评js异步加载的4种方式
Dec 22 Javascript
JavaScript面试题大全(推荐)
Sep 22 Javascript
原生JS改变透明度实现轮播效果
Mar 24 Javascript
关于foreach循环中遇到的问题小结
May 08 Javascript
Vue基于NUXT的SSR详解
Oct 24 Javascript
Vue.js图片预览插件使用详解
Aug 27 Javascript
Nuxt.js 数据双向绑定的实现
Feb 17 Javascript
微信小程序的开发范式BeautyWe.js入门详解
Jul 10 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
Sep 02 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+curl 发送图片处理代码分享
2015/07/09 PHP
PHP实现的文件上传类与用法详解
2017/07/05 PHP
记录几个javascript有关的小细节
2007/04/02 Javascript
javascript 全等号运算符使用说明
2010/05/31 Javascript
字符串的replace方法应用浅析
2011/12/06 Javascript
深入理解JavaScript系列(13) This? Yes,this!
2012/01/18 Javascript
js 连接数据库如何操作数据库中的数据
2012/11/23 Javascript
10个基于浏览器的JavaScript调试工具分享
2013/02/07 Javascript
jquery+json实现数据列表分页示例代码
2013/11/15 Javascript
前端必备神器 Snap.svg 弹动效果
2014/11/10 Javascript
TypeScript具有的几个不同特质
2015/04/07 Javascript
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
2017/04/12 Javascript
vue.js vue-router如何实现无效路由(404)的友好提示
2017/12/20 Javascript
详解.vue文件中style标签的几个标识符
2018/07/17 Javascript
基于vue-upload-component封装一个图片上传组件的示例
2018/10/16 Javascript
Koa日志中间件封装开发详解
2019/03/09 Javascript
javascript判断一个变量是数组还是对象
2019/04/10 Javascript
浅谈vuex为什么不建议在action中修改state
2020/02/02 Javascript
python简单程序读取串口信息的方法
2015/03/13 Python
python检测某个变量是否有定义的方法
2015/05/20 Python
计算机二级python学习教程(1) 教大家如何学习python
2019/05/16 Python
Python装饰器实现方法及应用场景详解
2020/03/26 Python
keras输出预测值和真实值方式
2020/06/27 Python
Feelunique德国官方网站:欧洲最大的在线美容零售商
2019/07/20 全球购物
美国美食礼品篮网站:Gourmet Gift Baskets
2019/12/15 全球购物
linux面试题参考答案(3)
2012/09/13 面试题
个人现实表现材料
2014/02/04 职场文书
六一儿童节主持词
2014/03/21 职场文书
合作经营协议书范本
2014/04/17 职场文书
中学生励志演讲稿
2014/04/26 职场文书
学习党代会心得体会
2014/09/05 职场文书
2014年体育教师工作总结
2014/12/03 职场文书
2014年学校禁毒工作总结
2014/12/23 职场文书
Python matplotlib多个子图绘制整合
2022/04/13 Python
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android