在网上找到一个灰常好看的html模版,很可惜它自带了很多css样式,为了防止冲突,你需要一行一行的去改css样式,给它添加上父亲节点,并且改动css的选择器。工作量太大有木有啊。 这个代码可以给css添加上父亲节点。有效的防止了css冲突。
注意2点:
1. css文件中需要手动去掉注释,该功能没有写了。有兴趣的可以将代码补全
2. 最好在每个选择器的 ”{“ 换行,该代码没有写,有兴趣可以自己补全
比如:
#div1{ color : red; } 改成 #div1{ color:red; }
package test.css; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import org.junit.Test; /** * 给所有的css样式加上父节点 * * @author Van * @time 20150312 */ public class ChangeCss { private static String tagName = "#footOuter "; private static String inPath = "D:\\workspaceluna\\GGBlog\\src\\main\\webapp\\resources\\plugins\\footer\\style.css"; private static String outPath = "D:\\workspaceluna\\GGBlog\\src\\main\\webapp\\resources\\plugins\\footer\\style1.css"; @Test public void cssTest() throws Exception{ //输入 BufferedReader in = new BufferedReader(new FileReader(inPath)); //删除旧文件 File file = new File(outPath); file.delete(); //创建输出流 FileWriter fw = new FileWriter(outPath); int lineTotal = 0; String temp; while( (temp = in.readLine()) != null ){ lineTotal++; StringBuilder sbder; //跳过空行 if(isEmpty(temp)){ continue; } //跳过@开头的行 if(temp.contains("@")){ fw.write(temp+"\r\n"); continue; } //对有逗号和没有分号的行加标签 if(temp.contains(",") && !temp.contains(";")){ sbder = new StringBuilder(); String _temp[] = temp.split(","); for(String _eveString : _temp){ //加上父节点 sbder.append( tagName + _eveString); if(_eveString.contains("{") || _eveString.contains("}")) continue; sbder.append(","); } fw.write(sbder+"\r\n"); continue; } //对有花括号和逗号的行进行处理 if(temp.contains("\\{")){ if(temp.contains(",")){ sbder = new StringBuilder(); temp = temp.split("\\{")[0]; String _temp[] = temp.split(","); for(int i=0;i<_temp.length;i++){ //加上父节点 sbder.append( tagName + _temp[i]); if(i==_temp.length-1) break; sbder.append(","); } sbder.append(temp.split("\\{")[1]); fw.write(sbder+"\r\n"); continue; } } //对有花括号的行进行处理 if(temp.contains("{")){ sbder = new StringBuilder(); sbder.append(tagName + temp); fw.write(sbder+"\r\n"); continue; } fw.write(temp+"\r\n"); } System.out.println(lineTotal); in.close(); fw.close(); } private boolean isEmpty(String value){ if(value.isEmpty()) return true; if(value.matches("^\\s+$")) return true; return false; } }
위 내용은 CSS 스타일에 상위 노드를 추가하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!