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 相关文章推荐
收集的一些Array及String原型对象的扩展实现代码
Dec 05 Javascript
jQuery将所有被选中的checkbox某个属性值连接成字符串的方法
Jan 24 Javascript
Node.js配合node-http-proxy解决本地开发ajax跨域问题
Aug 31 Javascript
深入理解javascript中的 “this”
Jan 17 Javascript
关于vue.js过渡css类名的理解(推荐)
Apr 10 Javascript
JavaScript实现无穷滚动加载数据
May 06 Javascript
简单快速的实现js计算器功能
Aug 17 Javascript
jquery应用实例分享_实现手风琴特效
Feb 01 jQuery
JavaScript设计模式之模板方法模式原理与用法示例
Aug 07 Javascript
jQuery实现为table表格动态添加或删除tr功能示例
Feb 19 jQuery
layui表格 返回的数据状态异常的解决方法
Sep 10 Javascript
JavaScript函数Call、Apply原理实例解析
Feb 17 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二进制流 逐bit的低位在前算法(详解)
2013/06/13 PHP
ThinkPHP中的create方法与自动令牌验证实例教程
2014/08/22 PHP
PHP使用PDO访问oracle数据库的步骤详解
2017/09/29 PHP
Javascript类库的顶层对象名用户体验分析
2010/10/24 Javascript
jquery基础教程之deferred对象使用方法
2014/01/22 Javascript
JavaScript获取两个数组交集的方法
2015/06/09 Javascript
react.js 翻页插件实例代码
2017/01/19 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
2017/10/17 Javascript
把vue-router和express项目部署到服务器的方法
2018/02/21 Javascript
Vue+webpack实现懒加载过程解析
2020/02/17 Javascript
Openlayers实现测量功能
2020/09/25 Javascript
微信小程序入门之绘制时钟
2020/10/22 Javascript
python中黄金分割法实现方法
2015/05/06 Python
对Python 网络设备巡检脚本的实例讲解
2018/04/22 Python
基于Python实现定时自动给微信好友发送天气预报
2018/10/25 Python
python抓取网页内容并进行语音播报的方法
2018/12/24 Python
python 与服务器的共享文件夹交互方法
2018/12/27 Python
python实现翻转棋游戏(othello)
2019/07/29 Python
如何使用repr调试python程序
2020/02/28 Python
pandas 像SQL一样使用WHERE IN查询条件说明
2020/06/05 Python
pyecharts在数据可视化中的应用详解
2020/06/08 Python
pandas数据分组groupby()和统计函数agg()的使用
2021/03/04 Python
英国袜子店:Sock Shop
2017/01/11 全球购物
Zooplus葡萄牙:欧洲领先的网上宠物商店
2018/07/01 全球购物
西班牙最大的在线滑板和街头服饰商店:Fillow.net
2019/04/15 全球购物
Dogeared官网:在美国手工制作的珠宝
2019/08/24 全球购物
对于没有初始化的变量的初始值可以作怎样的假定
2014/10/12 面试题
若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedException?
2016/10/17 面试题
竞聘上岗演讲稿范文
2014/01/10 职场文书
浪漫婚礼主持词
2014/03/14 职场文书
反对四风自我剖析材料
2014/10/07 职场文书
赵氏孤儿观后感
2015/06/09 职场文书
2016年父亲节寄语
2015/12/04 职场文书
Python入门之使用pandas分析excel数据
2021/05/12 Python
css样式important规则的正确使用方式
2022/06/10 HTML / CSS