关于css权重的两个问题:
一直被权重问题困扰,希望能通俗易懂的解答一下
问题1
<!DOCTYPE html>
<html>
<head>
<meta charset="utf8" http-equiv="content-type" content="text/css">
<title>dsaf</title>
<style>
div{
color: red;
}
div p{
color: green;
}
</style>
</head>
<body>
<div>
<p>aaaa/p>
</div>
</body>
</html>
上述代码aaaa颜色为什么是green而不是red,
正常理解是:div标签权重为1,而div p权重是2,所以aaaa是绿色,这个能解释通
但是我的理解是:p标签的权重本来是1,但是由于p继承了div那么p的权重为0,既然p的权重为0,而div标签的权重为1那aaaa应该是red颜色才对啊,请问这个理解错在哪里?
问题2
别人给的如下代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.nav li{
color: red;
}
.pink{
color: blue;
font-size: 55px;
}
</style>
</head>
<body>
<ul class="nav">
<li class="pink">aaaaa</li>
</ul>
</body>
</html>
1.li和li.pink是不是都是一个意思?
2.这个继承有点混乱,首先pink继承了nav,而li也被nav继承了,那么这个pink和li是不是同级别的兄弟关系?或者换一个说法li继承了ul 而<style>内的li又被.nav继承,这样也是被允许的么,怎么感觉这么混乱,麻烦详细说一下。
3.该代码最终执行结果aaaa是红色55号字体,如果要变成蓝色字体可以写为ul .pink(权重为11)或者.nav .pink(权重为20)这样都可以变为蓝色。但为什么将.pink写为li.pink也是蓝色,此时的权重不应该是10么?