温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

CSS样式冲突怎么解决

发布时间:2022-03-14 14:04:27 来源:亿速云 阅读:162 作者:iii 栏目:web开发

这篇文章主要介绍“CSS样式冲突怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“CSS样式冲突怎么解决”文章能帮助大家解决问题。

样式冲突解决方案

Scoped CSS与CSS Module是两大解决CSS中不存在模块化缺陷的有效手段,其中CSS Module通过将class名称做编码转换的方式来保证唯一性,从而避免样式冲突,比如

 <h2 className={style.title}>

     Hello World

 </h2>

被转换为

 <h2 class="_3zyde4l1yATCOkgn-DBWEL">

     Hello World

 </h2>

而相应的

 .title {

   color: red;

 }

被转换为

 ._3zyde4l1yATCOkgn-DBWEL {

   color: red;

 }

由于转换过后发生同名的可能性实在是太小了,这样就保证了在开发阶段可以放心的使用各种样式名称,即便发生同名也不会造成冲突。

而Scoped CSS使用的是另一种解决方案 &mdash;&mdash; 在HTML标签上做文章,比如

 <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>

这样,example的样式被限定在具有data-v-f3f3eg9属性的HTML标签上,也间接保证了唯一性,避免冲突。

本来到此好好的,不过官方文档接下来的一段话反而让我迷惑了

使用 scoped 后,父组件的样式将不会渗透到子组件中。不过一个子组件的根节点会同时受其父组件的 scoped CSS 和子组件的 scoped CSS 的影响。这样设计是为了让父组件可以从布局的角度出发,调整其子组件根元素的样式。

看来还是得要做实验

准备

准备三个组件

Level1.vue

Level2.vue

Level3.vue

其中Level1.vue包含了Level2.vue,Level2.vue包含了Level3.vue

接着加上一些方便于辨析的样式

关于“CSS样式冲突怎么解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

css
AI