请教一下CSS的继承: 一个后代元素,从2个祖先元素上继承color属性,听谁的?

我将外层div设置color:red ,内层div设置color:blue。内层div还有个span。
请问,为什么span的color继承了内层div的blue,而不是外层div的red?

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>css继承</title>
<style>
*{margin: 0; padding: 0;}
.out{border: 2px solid #000; 
    padding: 10px;
    color:red; /* 最外层div 红色字体*/
}
.in{border: 2px solid #ccc; 
    padding: 10px;
    color:blue; /* 内层div是蓝色字体 */
}
</style>
</head>
<body>
    <div class="out">
        out的文字
        <div class="in">
            <span>我在span里</span>
        </div>
    </div>
</body>
</html>

图片描述

阅读 4k
3 个回答

有两条原则
1:优先继承距离该元素近的祖先元素
2:设置在元素本身上的优先于继承祖先的

继承优先继承父元素的样式,而不是上来先继承祖先元素的样式。

追溯DOM树上最近的那个先祖;其次是上一级先祖;
也可以理解为:最近的先祖部分覆盖了上一级先祖;

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题