css选择器权重计算

选择器的权重是决定htm样式重要因素,选择器权重的计算是由四个数字决定的:

继承或则*贡献值   0,0,0,0      (这四个数字的权重从左到右依次减小)

标签元素  0,0,0,1

类和伪类 0,0,1,0

每个id  0,1,0,0

每个行内样式 1,0,0,0

每个!important   ∞无穷大

例题一

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<meta http-equiv="content-type" content="text/html;charset=utf-8" />
		<meta name="keywords" content="关键词1,关键词2,关键词3" />
		<meta name="description" content="对网站的描述" />
		<title>第1题</title>
		<style type="text/css">
			#father #son{  
				color:blue;  /*对于要输出的文字来说,我们来算一下这个选择器的权重,#father 是继承过来的里面的important不能被继承,
				算一个id选择器,那么这个选择器的权重为 0,1,0,0 + 0,1,0,0 = 0,2,0,0*/
			}
			#father p.c2{
				color:black;  /*权重为 0,1,1,1*/
			}
			div.c1 p.c2{   /*权重为 0,0,2,2*/
				color:red;
			}
			#father{
				color:green !important;  /* 继承的权重为0 */
			}
		</style>
	</head>
	<body>
		<div id="father" class="c1">
			<p id="son" class="c2">
				试问这行字体是什么颜色的? <!--通过权重计算可知,这个字体的颜色为第一个选择器的颜色,为蓝色-->
			</p>
		</div>
	</body>
</html>

再看例题2

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
	<title>Document</title>
	<style type="text/css">
		.c1 .c2 div{     /*对于文字,来计算此标签权重,0,0,2,1*/
			color: blue;
		}
		div #box3{       /*权重为0,1,0,1*/
			color:green;
		}
		#box1 div{		/*权重为0,1,0,1*/
			color:yellow;
		}
	</style>
</head>
<body>
	<div id="box1" class="c1">
		<div id="box2" class="c2">
			<div id="box3" class="c3">
				文字           <!--经过计算第二个选择器,和第三个选择的权重是相同的,由于css的层叠性
									可知,后执行的代码会覆盖掉前面的代码,因此文字表现出第三个选择器的颜色-->
			</div>
		</div>
	</div>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/qq_42039281/article/details/81986186