你好,我是CSS领域的新手,我对CSS继承在本例中的工作方式有疑问:
于飞:
<body>
<h1>My website</h1>
<div>
<p>Hello world</p>
</div>
<p>Social</p>
</body>
CSS:
body {font-size: 15px;}
我们可以看到,在这段代码中,我们有2个直接的子元素(h1、div、p),所以我认为font-size属性应该直接应用于这些元素,但是对于非直接的子元素,它是如何工作的呢?我们知道div中的p元素也会应用该属性;我想知道的是,这是否像一个链一样工作?所以body继承div元素的属性,div继承p元素的属性?这是继承非直接子元素的方式吗?
1条答案
按热度按时间kmbjn2e31#
下面是对CSS Specificity的简要介绍。
一般的规则是:
默认=〉元素特定=〉类=〉ID =〉内联
而在元素特定中,父项与子项越接近,特异性值越高。
在你的例子中,body有一个样式覆盖了默认样式,所以标签内的所有子标签都继承了它(body父标签比默认html父标签更接近),并且没有更具体的css样式来覆盖它。
如果要添加
那么您的段落将继承div样式(因为它是比body更接近的父级),但您的标题将保留body样式(它不是div的子级)。
我希望这能澄清。