标签:
1、样式的优先级
内联样式 > 内部样式 > 外部样式
以下的特例:外部样式会覆盖内部样式(不推荐内联样式)
<html>
<head>
<style type="text/css">
div { background:red; }
</style>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div>Hello World!</div>
</body>
</html>2、选择器的优先权
内联样式(1000)> id(100)> class(10)> tag(10)
以下例子div将显示的背景色是黑色。
<html>
<head>
<style type="text/css">
#divId { height:100px; background:black; }
.divClass { height:100px; background:green; }
</style>
</head>
<body>
<div id="divId" class="divClass">Hello World!</div>
</body>
</html> 
同理,之前遇到过一个问题:
<html>
<head>
<style type="text/css">
#divId { height:100px; background:black; }
.divClass { height:100px; background:red; }
</style>
</head>
<body>
<div id="divId"></div>
</body>
<script type="text/javascript">
window.onload = function() {
var divId = document.getElementById("divId");
divId.className = "divClass";
};
</script>
</html>
这时你会发现js的代码不起作用,相信你应该知道原因了吧。
解决的方法有很多,以下说说两种:
(1)如果需要修改的属性少,可以直接用js修改属性
window.onload = function() {
var divId = document.getElementById("divId");
divId.style.background = "red";
}; (2)当要修改的属性多,可以在外出加多一个有id的标签,让class的优先级高于当前div的id
<html>
<head>
<style type="text/css">
#divId { height:100px; background:black; }
#boss .divClass { height:100px; background:red; }
</style>
</head>
<body>
<div id="boss">
<div id="divId"></div>
</div>
</body>
<script type="text/javascript">
window.onload = function() {
var divId = document.getElementById("divId");
divId.className = "divClass";
};
</script>
</html> 
标签:
原文地址:http://my.oschina.net/cobish/blog/371988