从CSS文件中删除重复项

时间:2014-07-15 18:30:20

标签: php css media-queries unique substr

今天我尝试使用SCCS编译器(http://leafo.net/scssphp/),我爱上了这个工具,但我还需要一个功能。

我生成了压缩的CSS文件:

html,body{height:100%;}html,body{height:100%;}html,body{height:100%;}@media all and (max-width:960px){body{height:80%;width:95%;}}@media all and (max-width:480px){body{height:100%;width:90%;}}nav ul{margin:0;padding:0;list-style:none;}nav li{display:inline-block;}nav a{display:block;padding:6px 12px;text-decoration:none;}html,body{height:100%;}html,body{height:100%;}@media all and (max-width:960px){body{height:80%;width:95%;}}@media all and (max-width:480px){body{height:100%;width:90%;}}html,body{height:100%;}

未压缩文件:

html, body {
  height: 100%;
}
html, body {
  height: 100%;
}
html, body {
  height: 100%;
}
@media all and (max-width: 960px) {
  body {
    height: 80%;
    width: 95%;
  }
}
@media all and (max-width: 480px) {
  body {
    height: 100%;
    width: 90%;
  }
}
nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
nav li {
  display: inline-block;
}
nav a {
  display: block;
  padding: 6px 12px;
  text-decoration: none;
}
html, body {
  height: 100%;
}
html, body {
  height: 100%;
}
@media all and (max-width: 960px) {
  body {
    height: 80%;
    width: 95%;
  }
}
@media all and (max-width: 480px) {
  html, body {
    height: 100%;
  }
  body {
    height: 100%;
    width: 90%;
  }
}
html, body {
  height: 100%;
}

我在PHP中的字符串变量中有这个代码,我需要删除重复项。这听起来很简单,array_unique就是这样。当然。但我需要单独的代码用于正常的CSS和每个媒体分开。所以我需要输出:

html, body {
  height: 100%;
}
nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
nav li {
  display: inline-block;
}
nav a {
  display: block;
  padding: 6px 12px;
  text-decoration: none;
}
@media all and (max-width: 960px) {
  body {
    height: 80%;
    width: 95%;
  }
}
@media all and (max-width: 480px) {
  html, body {
    height: 100%;
  }
  body {
    height: 100%;
    width: 90%;
  }
}

因此,此脚本不会从@media all和(max-width:480px)中删除html,body {height:100%},因为此媒体是唯一的。

你可以帮帮我吗? 如果您可以将每个媒体查询放在文件的末尾,我会很高兴。

1 个答案:

答案 0 :(得分:0)

您应该使用css优化,例如:https://github.com/GoalSmashers/clean-css

我建议你将Grunt与scss和cleancss插件结合使用,而不是使用PHP来解析你的scss - > css,一旦你习惯它,它就容易处理。