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 选择器 伪类选择器介绍
Jan 21 HTML / CSS
Web页面中八种创建多列等高(等高列布局)的实现技术
Dec 24 HTML / CSS
CSS3 Flexbox中flex-shrink属性的用法示例介绍
Dec 30 HTML / CSS
CSS3绘制不规则图形的一些方法示例
Nov 07 HTML / CSS
html5 localStorage本地存储_动力节点Java学院整理
Jul 06 HTML / CSS
详解Canvas 实现炫丽的粒子运动效果(粒子生成文字)
Feb 01 HTML / CSS
html5的canvas方法使用指南
Dec 15 HTML / CSS
HTML5触摸事件演化tap事件介绍
Mar 25 HTML / CSS
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
Apr 07 HTML / CSS
CSS3新特性详解(五):多列columns column-count和flex布局
Apr 30 HTML / CSS
flex布局中使用flex-wrap实现换行的项目实践
Jun 21 HTML / CSS
如何用H5实现好玩的2048小游戏
Jul 23 HTML / CSS
使用CSS实现小三角边框原理解析
CSS实现切角+边框+投影+内容背景色渐变效果
纯CSS如何禁止用户复制网页的内容
CSS实现单选折叠菜单功能
CSS 一行代码实现头像与国旗的融合
如何利用 CSS Overview 面板重构优化你的网站
基于HTML十秒做出淘宝页面
You might like
PHP中字符安全过滤函数使用小结
2015/02/25 PHP
php 微信开发获取用户信息如何实现
2016/12/13 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
asp.net和asp下ACCESS的参数化查询
2008/06/11 Javascript
Js 刷新框架页的代码
2010/04/13 Javascript
jquery.validate使用攻略 第三部
2010/07/01 Javascript
Array, Array Constructor, for in loop, typeof, instanceOf
2011/09/13 Javascript
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
2013/01/27 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
2015/05/16 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
jQuery使用正则表达式限制文本框只能输入数字
2016/06/18 Javascript
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
Vue实现带进度条的文件拖动上传功能
2018/02/23 Javascript
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
jQuery实现的3D版图片轮播示例【滑动轮播】
2019/01/18 jQuery
微信小程序网络请求实现过程解析
2019/11/06 Javascript
原生js实现拖拽移动与缩放效果
2020/08/24 Javascript
[04:29]【TI9采访】OG.N0tail在胜者组决赛后接受采访
2019/08/25 DOTA
python抓取京东商城手机列表url实例代码
2013/12/18 Python
Python实现简单的多任务mysql转xml的方法
2017/02/08 Python
python实现列表中由数值查到索引的方法
2018/06/27 Python
python整合ffmpeg实现视频文件的批量转换
2019/05/31 Python
简单了解python PEP的一些知识
2019/07/13 Python
python批量修改ssh密码的实现
2019/08/08 Python
Java爬虫技术框架之Heritrix框架详解
2020/07/22 Python
Python面向对象多态实现原理及代码实例
2020/09/16 Python
使用CSS3的font-face字体嵌入样式的方法讲解
2016/05/13 HTML / CSS
英国街头品牌:Bee Inspired Clothing
2018/02/12 全球购物
马来西亚网上购物:Youbeli
2018/03/30 全球购物
迪士尼西班牙官方网上商店:ShopDisney西班牙
2020/02/02 全球购物
杭州-飞时达软件有限公司.net笔面试
2012/04/28 面试题
JAVA高级程序员面试题
2013/09/06 面试题
2014年安全生产大检查方案
2014/05/13 职场文书
村党支部群众路线教育实践活动对照检查材料
2014/09/26 职场文书
关于五一放假的通知
2015/08/18 职场文书