我如何比较两个CSS文件,看它们是否在语义上完全相同?

我如何比较两个CSS文件,看它们是否在语义上完全相同?,css,text,sass,Css,Text,Sass,我正在重构一些SCSS代码,并希望确保生成的CSS代码不会在语义上发生变化,即使它在字面上发生了变化。重构包括创建一个mixin并用mixin的include替换在许多地方重复的代码片段 问题在于,在某些地方,属性a列在属性b之前,但在其他地方则相反。当然,使用mixin会为它的所有用途生成一致的顺序。因此,一个简单的文本比较会产生一个我不想看到的差异 例如,如果我从以下代码开始: .foo { background: white; color: brown; } .bar { c

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

问题在于,在某些地方,属性
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太简单了

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

谢谢你的帮助。文本比较是不够的。我在后面的问题中提到了这一点,但我只是编辑了问题的第一句话,使之更加明显。谢谢你的帮助。文本比较是不够的。我在问题的后面提到了这一点,但我只是编辑了问题的第一句话,以使其更为明显。我认为这也会起作用,但有人向我指出(见第页的帖子),顺序有时确实很重要。重复属性规范的情况是顺序很重要的另一种情况。因此,我关注的是你问的“是否有一种方法可以比较文件,从而忽略这些不一致的顺序?”你现在似乎在说,你需要知道哪里有不一致的顺序。也许更进一步,没有办法重构不一致的订单。那么,你基本上是在要求列出你无能为力的事情吗?是的,你回答了我最初的问题,谢谢你。我不同意你关于这个问题无法解决的结论。这是可以解决的,只是需要比我想象的更多的智慧/工作。例如,规范化过程可以检查重复项,并确保规范化表单以相同的顺序包含它们。重复属性规范的情况是顺序很重要的另一种情况。因此,我关注的是你问的“是否有一种方法可以比较文件,从而忽略这些不一致的顺序?”你现在似乎在说,你需要知道哪里有不一致的顺序。也许更进一步,没有办法重构不一致的订单。那么,你基本上是在要求列出你无能为力的事情吗?是的,你回答了我最初的问题,谢谢你。我不同意你关于这个问题无法解决的结论。这是可以解决的,只是需要比我想象的更多的智慧/工作。例如,规范化过程可以检查重复项,并确保规范化表单以相同的顺序包含它们。