权重
CSS使用方法的优先级
1、行内样式:在各个元素内写样式
<div style="border:1px solid #000"></div>
2、页内样式:在网页上创建样式表,直接写在HTML页面中的
<head> <style type="text/css"> .div{ border:1px solid #000; } </style> </head>
3、外部样式:将网页链接到外部样式表
<link rel="stylesheet" href="index.css" type="text/css">
css选择器优先级
1、ID选择器优先级高于class选择器,如#div高于.div
2、层级深的定义优先级更高,如#div .img高于.img
在css文件中出现两个同名的类,后面的会覆盖前面的一样的属性
.div{color:red;border:1px solid #000;}
.div{color:black;border:1px solid #000;}
结果显示color:black
权重的计算
口诀:从0开始,一个行内样式+1000,一个id+100,一个属性选择器或者class或者伪类+10,一个元素名或者伪元素+1
body #content .data img:hover
权重122
#content是id+100
.data是类+10
body 和 img是元素名+2
:hover是伪类+10
100+10+2+10=122
!important权重最高
p{ font-size:18px !important; font-size:12px }
结果是font-size:18px;(高级浏览器中)
IE6中显示font-size:12px;
但并不代表IE6不支持!important,如
p{border:1px solid black !important;}
p{border:1px solid red;}
IE6中显示border:black
但是,相同属性写在同一行中,后面的会覆盖前面即使有!important的属性值
p{border:1px solid black !important; border:1px solid red;}
IE6中显示border:red