欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

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

程序员文章站 2022-05-01 18:44:21
...

在网上找到一个灰常好看的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样式加上父节点?的详细内容,更多请关注其它相关文章!

相关标签: css,父节点