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 相关文章推荐
动态加载script文件的两种方法
Aug 15 Javascript
jQuery实现手机号码输入提示功能实例
Apr 30 Javascript
浅谈Angular.js中使用$watch监听模型变化
Jan 10 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
Mar 17 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
Apr 05 Javascript
JS禁止浏览器右键查看元素或按F12审查元素自动关闭页面示例代码
Sep 07 Javascript
axios使用拦截器统一处理所有的http请求的方法
Nov 02 Javascript
Node.js如何对SQLite的async/await封装详解
Feb 14 Javascript
JS实现移动端在线签协议功能
Aug 22 Javascript
Vue3为什么这么快
Sep 23 Javascript
如何在vue 中引入使用jquery
Nov 10 jQuery
解决js中的setInterval清空定时器不管用问题
Nov 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
require(),include(),require_once()和include_once()的异同
2007/01/02 PHP
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
2008/03/28 PHP
php实现加减法验证码代码
2014/02/14 PHP
php生成短网址示例
2014/05/05 PHP
php实现的Timer页面运行时间监测类
2014/09/24 PHP
示例详解Laravel重置密码代码重构
2016/08/10 PHP
javascript replace方法与正则表达式
2008/02/19 Javascript
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
JQuery中form验证出错信息的查看方法
2013/10/08 Javascript
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
2016/09/14 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
NodeJS仿WebApi路由示例
2017/02/28 NodeJs
jQuery实现的背景颜色渐变动画效果示例
2017/03/24 jQuery
vue的style绑定background-image的方式和其他变量数据的区别详解
2018/09/03 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
2018/09/07 Javascript
微信小程序搭建(mpvue+mpvue-weui+fly.js)的详细步骤
2018/09/18 Javascript
vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
2018/11/05 Javascript
KOA+egg.js集成kafka消息队列的示例
2018/11/09 Javascript
DatePickerDialog 自定义样式及使用全解
2019/07/09 Javascript
Layui 带多选框表格监听事件以及按钮自动点击写法实例
2019/09/02 Javascript
javascript 高级语法之继承的基本使用方法示例
2019/11/11 Javascript
JS倒计时两种实现方式代码实例
2020/07/27 Javascript
vue相同路由跳转强制刷新该路由组件操作
2020/08/05 Javascript
python使用PythonMagick将jpg图片转换成ico图片的方法
2015/03/26 Python
Python paramiko模块使用解析(实现ssh)
2019/08/30 Python
Django将默认的SQLite更换为MySQL的实现
2019/11/18 Python
Window系统下Python如何安装OpenCV库
2020/03/05 Python
深入了解Python enumerate和zip
2020/07/16 Python
HTML5之SVG 2D入门8—文档结构及相关元素总结
2013/01/30 HTML / CSS
耐克美国官网:Nike.com
2016/08/01 全球购物
铭立家具面试题
2012/12/06 面试题
JAVA高级程序员面试题
2013/09/06 面试题
2014年卫生工作总结
2014/11/27 职场文书
个人总结格式范文
2015/03/09 职场文书
八年级语文教学反思
2016/03/03 职场文书
安装Windows Server 2012 R2企业版操作系统并设置好相关参数
2022/04/29 Servers