CSS中的元素样式还原属性 all:revert

现在CSS写的是越来越少了,以至于刷到这样一个问题 👉 前端文章页的内容获取自后台编辑器,如何让他不受全局样式影响?
思维惯性下就开始考虑各种样式隔离方案,而完全忽略掉了还有一种使用CSS的样式还原方式(all: revert) 来避免全局样式对于富文本内容的样式污染问题。

相比于各种前端的CSS样式隔离方案的高成本,使用 all: revert 方式来简易实现局部区域的样式还原,仅仅需要配置一条这样的样式规则:

<template>
  <div id="test">
    <div v-html="html"></div>
  </div>
</template>
<style>
#test * {
  all: revert;
}
</style>

但因为CSS样式的权重问题,你看到了我是使用的 ID选择器,而不是 Class选择器
所以如果说全局样式有使用 #app 来匹配的话,就没办法使用 all: revert 的方式来还原浏览器默认样式了。这也是这个方案的短板,不过大部分情况下的样式都是可以被重置的。

相关文档