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 formValidator表单验证插件开源了 含API帮助、源码、示例
Aug 14 Javascript
js 居中漂浮广告
Mar 21 Javascript
SlideView 图片滑动(扩展/收缩)展示效果
Aug 01 Javascript
jquery实现网页查找功能示例分享
Feb 12 Javascript
js自动查找select下拉的菜单并选择(示例代码)
Feb 26 Javascript
用js一次改变多个input的readonly属性值的方法
Jun 11 Javascript
jQuery实现高亮显示网页关键词的方法
Aug 07 Javascript
jQuery日期范围选择器附源码下载
May 23 jQuery
javaScript封装的各种写法
Aug 14 Javascript
vue.js使用watch监听路由变化的方法
Jul 08 Javascript
vue后台管理之动态加载路由的方法
Aug 13 Javascript
浅析JavaScript 函数防抖和节流
Jul 13 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
收音机玩机评测 406 篇视频合集
2020/03/11 无线电
php之对抗Web扫描器的脚本技巧
2008/10/01 PHP
PHP学习笔记之一
2011/01/17 PHP
php读取csv文件并输出的方法
2015/03/14 PHP
thinkPHP简单实现多个子查询语句的方法
2016/12/05 PHP
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
jQuery的显示和隐藏方法与css隐藏的样式对比
2013/10/18 Javascript
原生js实现淘宝首页点击按钮缓慢回到顶部效果
2014/04/06 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
2015/12/17 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
2017/02/15 Javascript
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
Vue学习笔记之表单输入控件绑定
2017/09/05 Javascript
vue axios 二次封装的示例代码
2017/12/08 Javascript
快速解决Vue项目在IE浏览器中显示空白的问题
2018/09/04 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
2018/10/09 Javascript
layui上传图片到服务器的非项目目录下的方法
2019/09/26 Javascript
基于vue.js仿淘宝收货地址并设置默认地址的案例分析
2020/08/20 Javascript
python3爬取淘宝信息代码分析
2018/02/10 Python
Python使用progressbar模块实现的显示进度条功能
2018/05/31 Python
详解Python3中的迭代器和生成器及其区别
2018/10/09 Python
详解Django中CBV(Class Base Views)模型源码分析
2019/02/25 Python
在Python中实现函数重载的示例代码
2019/12/12 Python
python如何获取apk的packagename和activity
2020/01/10 Python
python如何使用Redis构建分布式锁
2020/01/16 Python
解决Tensorboard 不显示计算图graph的问题
2020/02/15 Python
Python+OpenCV实现图像的全景拼接
2020/03/05 Python
如何在sublime编辑器中安装python
2020/05/20 Python
教你如何用python操作摄像头以及对视频流的处理
2020/10/12 Python
python 提高开发效率的5个小技巧
2020/10/19 Python
iframe与window.onload如何使用详解
2020/05/07 HTML / CSS
Nicole Miller官方网站:纽约女装品牌
2019/09/14 全球购物
车间工艺员岗位职责
2013/12/09 职场文书
奥利奥广告词
2014/03/20 职场文书
关于运动会的广播稿
2014/09/22 职场文书
超市员工辞职信范文
2015/05/12 职场文书
Golang二维切片初始化的实现
2021/04/08 Golang