近期某项目中遇到一个css样式的问题,本来系统里有一套css样式定义,工作正常。
后来引入了一个设计师自己搞的图表,js+css。嵌入系统之后发现样式不正常,检查原因发现第三方图表自带的css中有一些内容和系统现有内容冲突了,例如:
body部分
/*现有 app.css*/
body {
height: 100%;
}
/*第三方 index.css*/
body {
background-image: url(img/bg1.jpg);
background-repeat: no-repeat;
background-size: 100%;
color: #fff;
}
nav部分
/*现有 bootstrap.css*/
nav {
...
}
/*第三方 index.css*/
nav {
position: absolute;
left: 0;
top: 0;
z-index: 2;
width: 100%;
height: 105px;
background-image: url(img/head_bg.png);
}
两个css文件定义了相同的元素,所以会冲突。
经过一番研究,找到了解决的办法:
把第三方css文件中的定义拿出来,直接贴在第三方图表的html文件中,也就是限制它为局部有效:
/*xxx.html*/
<head>
<style>
body {
background-image: url(img/bg1.jpg);
background-repeat: no-repeat;
background-size: 100%;
color: #fff;
}
nav {
position: absolute;
left: 0;
top: 0;
z-index: 2
}
</style>
</head>