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 相关文章推荐
css3中背景尺寸background-size详解
Sep 02 HTML / CSS
CSS3制作圆角图片和椭圆形图片
Jul 08 HTML / CSS
HTML5边玩边学(3)像素和颜色
Sep 21 HTML / CSS
在html5的Canvas上绘制椭圆的几种方法总结
Jan 07 HTML / CSS
HTML5 Canvas draw方法制作动画效果示例
Jul 11 HTML / CSS
使用HTML5的Notification API制作web通知的教程
May 08 HTML / CSS
解析HTML5的存储功能和web SQL的相关操作方法
Feb 19 HTML / CSS
Html5中localStorage存储JSON数据并读取JSON数据的实现方法
Feb 13 HTML / CSS
HTML5地理定位_动力节点Java学院整理
Jul 12 HTML / CSS
详解canvas绘制多张图的排列顺序问题
Jan 21 HTML / CSS
如何在CSS中绘制曲线图形及展示动画
May 24 HTML / CSS
CSS的calc函数用法小结
Jun 25 HTML / CSS
使用CSS实现小三角边框原理解析
CSS实现切角+边框+投影+内容背景色渐变效果
纯CSS如何禁止用户复制网页的内容
CSS实现单选折叠菜单功能
CSS 一行代码实现头像与国旗的融合
如何利用 CSS Overview 面板重构优化你的网站
基于HTML十秒做出淘宝页面
You might like
php加密解密函数authcode的用法详细解析
2013/10/28 PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
2014/04/17 PHP
php中随机函数mt_rand()与rand()性能对比分析
2014/12/01 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
js jquery做的图片连续滚动代码
2008/01/06 Javascript
formStorage 基于jquery的一个插件(存储表单中元素的状态到本地)
2012/01/20 Javascript
JS+CSS 制作的超级简单的下拉菜单附图
2013/11/22 Javascript
Angular.js如何从PHP读取后台数据
2016/03/24 Javascript
jquery实现左右无缝轮播图
2020/07/31 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
使用vue.js编写蓝色拼图小游戏
2017/03/17 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
Nodejs中使用captchapng模块生成图片验证码
2017/05/18 NodeJs
利用canvas实现的加载动画效果实例代码
2017/07/05 Javascript
Vue ElementUI之Form表单验证遇到的问题
2017/08/21 Javascript
js 中rewrap-ajax.js插件实例代码
2017/10/20 Javascript
AngularJS2 与 D3.js集成实现自定义可视化的方法
2017/12/01 Javascript
Vue中util的工具函数实例详解
2019/07/08 Javascript
[01:48]DOTA2 2015国际邀请赛中国区预选赛第二日战报
2015/05/27 DOTA
Python random模块常用方法
2014/11/03 Python
CentOS下使用yum安装python-pip失败的完美解决方法
2017/08/16 Python
Python实现文件信息进行合并实例代码
2018/01/17 Python
Flask解决跨域的问题示例代码
2018/02/12 Python
解决python中 f.write写入中文出错的问题
2018/10/31 Python
django 连接数据库 sqlite的例子
2019/08/14 Python
Python实现字符串中某个字母的替代功能
2019/10/21 Python
详解Windows下PyCharm安装Numpy包及无法安装问题解决方案
2020/06/18 Python
Python就将所有的英文单词首字母变成大写
2021/02/12 Python
英国轻奢珠宝品牌:Astley Clarke
2016/12/18 全球购物
丝芙兰新加坡官网:Sephora新加坡
2018/12/04 全球购物
蜜蜂引路教学反思
2014/02/04 职场文书
2015年乡镇卫生院妇幼保健工作总结
2015/05/19 职场文书
Django实现drf搜索过滤和排序过滤
2021/06/21 Python
Django路由层如何获取正确的url
2021/07/15 Python
Oracle 多表查询基本语法实例
2022/04/18 Oracle