css - 我如何比较 2 个 CSS 文件以查看它们是否*语义*相同?

标签 css text sass

我正在重构一些 SCSS 代码,并希望确保生成的 CSS 代码不会在语义上发生变化,即使它在字面上发生了变化。重构包括创建一个 mixin 并用 mixin 的包含替换在许多地方重复的代码片段。

问题是在某些地方属性 a 列在属性 b 之前,但在其他地方则相反。使用 mixin 当然会为它的所有使用产生一致的顺序。因此,简单的文本比较会产生我不希望的差异。

例如,如果我从这段代码开始:

.foo {
  background: white;
  color: brown;
}

.bar {
  color: brown;
  background: white;
}

...然后将其重构为:

@mixin my-colors {
  background: white;
  color: brown;
}

.foo {
  @include my-colors
}

.bar {
  @include my-colors
}

..然后为 .bar 生成的文本将发生变化,即使作为无序集的属性没有变化。换句话说,文本比较将显示 CSS 已更改,而实际上它在语义上没有更改。

有没有办法比较文件,从而忽略这些不一致的顺序?

最佳答案

你可以用一个程序来做。如果将属性粘贴到前版本的数组中,并从后版本的数组中减去属性,则非逻辑更改的类将导致空数组。在 Ruby 中太简单了!

关于css - 我如何比较 2 个 CSS 文件以查看它们是否*语义*相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58260048/

相关文章:

CSS:表格中的垂直对齐不精确

html - 尝试调整表中列表中▲▼符号的大小,但字体大小无效

unicode - 我的文字显示为问号是什么意思?

python - 使用 python 提取包含关键字或短语列表的句子

java - 检测 `char[]` 中的换行符

css - 使用 Angular 7 cli 解析 css 中的 Assets 路径

javascript - 无法将 Sass 变量导出到 Javascript

javascript - ionic 框架,在渲染模板后加载一个javaScript

html - Bootstrap navbar top固定搜索输入内容随页面滚动

css - Rails 如何在特定的 erb View 中包含 scss 文件?