首页  >  文章  >  web前端  >  如何给css样式加上父节点?

如何给css样式加上父节点?

零下一度
零下一度原创
2017-04-26 17:04:103764浏览

在网上找到一个灰常好看的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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn