CSS作用域(样式分割)的使用汇总


Posted in HTML / CSS onNovember 07, 2021

一、CSS作用域(样式分割)的使用

在vue中,让css样式只在当前组件中生效:scoped 属性是 HTML5 中的新属性,是一个布尔属性,如果使用该属性,则样式仅仅应用到 style 元素的父元素及其子元素。

CSS作用域(样式分割)的使用汇总

二、scoped的实现原理

vue中的scoped属性的效果主要通过PostCSS转译实现,如下是转译前的vue代码:

<style scoped>
    .test {
      color: blue;
    }
  </style>
  
  <template>
    <div class="test">Hi world</div>
  </template>

转译后:

<style>
    .test[data-v-5559930f] {
      color: blue;
    }
  </style>
  
  <template>
    <div class="test" data-v-5559930f>Hi world</div>
  </template>

PostCSS给一个组件中的所有DOM添加一个独一无二的动态属性,然后,给CSS选择器额外添加一个对应的属性选择器来选择该组件中的DOM,这种做法使得样式只作用于含有该属性的DOM<组件内部DOM>。

三、scoped穿透方法

在很多项目中,当引用第三方组件,需要再组件中局部修改第三方组件的样式,而又不想去除scoped属性造成组件之间的样式污染。这时就需要采用一些特殊的方式来进行穿透scoped。

方法一: 使用>>>可以穿透scoped属性,修改其他第三方组件样式。

CSS作用域(样式分割)的使用汇总

方法二: 使用两个style标签,一个带scoped属性,一个不带scoped属性,用来修改第三方组件的样式。

CSS作用域(样式分割)的使用汇总

方法三: 使用sass或less的样式穿透 /deep/

CSS作用域(样式分割)的使用汇总

方法四: 通过在最外层加 id或者 class的形式进行区分。

到此这篇关于CSS作用域(样式分割)的文章就介绍到这了,更多相关CSS作用域内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
css 省略号 css3让多余的字符串消失并附加省略号的实现代码
Feb 07 HTML / CSS
css3实现3D色子翻转特效
Dec 23 HTML / CSS
纯CSS3代码实现文字描边
Apr 25 HTML / CSS
CSS3 Flex 弹性布局实例代码详解
Nov 01 HTML / CSS
详解HTML5通讯录获取指定多个人的信息
Dec 20 HTML / CSS
网易微博Web App用HTML5开发的过程介绍
Jun 13 HTML / CSS
html5指南-1.html5全局属性(html5 global attributes)深入理解
Jan 07 HTML / CSS
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
Jan 09 HTML / CSS
HTML5梦幻之旅——炫丽的流星雨效果实现过程
Aug 06 HTML / CSS
如何在Canvas中添加事件的方法示例
May 21 HTML / CSS
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
Mar 30 HTML / CSS
css position fixed 左右双定位的实现代码
Apr 29 HTML / CSS
使用CSS实现小三角边框原理解析
CSS实现切角+边框+投影+内容背景色渐变效果
纯CSS如何禁止用户复制网页的内容
CSS实现单选折叠菜单功能
CSS 一行代码实现头像与国旗的融合
如何利用 CSS Overview 面板重构优化你的网站
基于HTML十秒做出淘宝页面
You might like
深入理解PHP几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表
2013/06/06 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
2014/04/08 PHP
PHP中防止SQL注入方法详解
2014/12/25 PHP
php模拟登陆的实现方法分析
2015/01/09 PHP
PHP设计模式之简单投诉页面实例
2016/02/24 PHP
JavaScript 基础篇之运算符、语句(二)
2012/04/07 Javascript
jquery实现通用版鼠标经过淡入淡出效果
2014/06/15 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
2016/06/21 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
2016/07/21 Javascript
jQuery增加、删除及修改select option的方法
2016/08/19 Javascript
详解js运算符单竖杠“|”与“||”的用法和作用介绍
2016/11/04 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
详解在AngularJS的controller外部直接获取$scope
2017/06/02 Javascript
JavaScript 基础表单验证示例(纯Js实现)
2017/07/20 Javascript
详解如何用模块化的方式写vuejs
2017/12/16 Javascript
详解微信小程序实现WebSocket心跳重连
2018/07/31 Javascript
JS实现的input选择图片本地预览功能示例
2018/08/29 Javascript
关于在vue 中使用百度ueEditor编辑器的方法实例代码
2018/09/14 Javascript
vue数据操作之点击事件实现num加减功能示例
2019/01/19 Javascript
微信小程序音乐播放器开发
2019/11/20 Javascript
Vant 中的Toast设置全局的延迟时间操作
2020/11/04 Javascript
python中base64加密解密方法实例分析
2015/05/16 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
2018/03/29 Python
使用Python实现租车计费系统的两种方法
2018/09/29 Python
对python中矩阵相加函数sum()的使用详解
2019/01/28 Python
Python Numpy,mask图像的生成详解
2020/02/19 Python
Python使用monkey.patch_all()解决协程阻塞问题
2020/04/15 Python
Python3合并两个有序数组代码实例
2020/08/11 Python
Pycharm自带Git实现版本管理的方法步骤
2020/09/18 Python
美国台面电器和厨具品牌:KitchenAid
2019/04/12 全球购物
《学棋》教后反思
2014/04/14 职场文书
项目负责人任命书
2014/06/04 职场文书
暑期社会实践心得体会
2014/09/02 职场文书
争先创优演讲稿
2014/09/15 职场文书
师范生见习报告范文
2014/11/03 职场文书
新教师2015年度工作总结
2015/07/22 职场文书