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获取网页中图片高度的两种方法
Sep 26 Javascript
JQ获取动态加载的图片大小的正确方法分享
Nov 08 Javascript
jquery插件tooltipv顶部淡入淡出效果使用示例
Dec 05 Javascript
Immutable 在 JavaScript 中的应用
May 02 Javascript
AngularJs concepts详解及示例代码
Sep 01 Javascript
整理关于Bootstrap表单的慕课笔记
Mar 29 Javascript
ES6新特性之字符串的扩展实例分析
Apr 01 Javascript
ES6中Symbol类型用法实例详解
Apr 06 Javascript
mui上拉加载功能实例详解
Apr 13 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
Apr 03 Javascript
es6中比较有用的7个技巧小结
Jul 12 Javascript
js实现div色块拖动录制
Jan 16 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概述.
2006/10/09 PHP
PHP扩展编写点滴 技巧收集
2010/03/09 PHP
探讨各种PHP字符串函数的总结分析
2013/06/05 PHP
解析PHP无限级分类方法及代码
2013/06/21 PHP
PHP结合jQuery实现找回密码
2015/07/22 PHP
php文件缓存方法总结
2016/03/16 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
2016/05/20 PHP
php 判断页面或图片是否经过gzip压缩的方法
2017/04/05 PHP
PHP多进程编程之僵尸进程问题的理解
2017/10/15 PHP
用AJAX返回HTML片段中的JavaScript脚本
2010/01/04 Javascript
javascript实现input file上传图片预览效果
2015/12/31 Javascript
深入理解JavaScript程序中内存泄漏
2016/03/17 Javascript
js 获取经纬度的实现方法
2016/06/20 Javascript
JS实现两周内自动登录功能
2017/03/23 Javascript
webpack 2的react开发配置实例代码
2017/07/28 Javascript
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
基于canvasJS在PHP中制作动态图表
2020/05/30 Javascript
python定时器使用示例分享
2014/02/16 Python
Python中最常用的操作列表的几种方法归纳
2015/04/24 Python
Python中encode()方法的使用简介
2015/05/18 Python
Python中列表list以及list与数组array的相互转换实现方法
2017/09/22 Python
使用Python的package机制如何简化utils包设计详解
2017/12/11 Python
Python 实现微信防撤回功能
2019/04/29 Python
在Pytorch中使用样本权重(sample_weight)的正确方法
2019/08/17 Python
python pillow模块使用方法详解
2019/08/30 Python
Python Selenium安装及环境配置的实现
2020/03/17 Python
pandas数据拼接的实现示例
2020/04/16 Python
python开发一款翻译工具
2020/10/10 Python
倩碧英国官网:Clinique英国
2018/08/10 全球购物
绘画专业自荐信范文
2014/02/23 职场文书
《郑和远航》教学反思
2014/04/16 职场文书
大学生第一学年自我鉴定
2014/09/12 职场文书
就业导师推荐信范文
2015/03/27 职场文书
科技馆观后感
2015/06/08 职场文书
导游词之徐州-云龙山
2019/09/29 职场文书
MySQL 服务和数据库管理
2021/11/11 MySQL