2016-03-03 70 views
-1

在Chrome DevTools中我注意到了一件事,我不明白。 如果我只在CSS中设置宽度和高度,那么div不会继承任何属性。为什么在CSS中没有继承

body { 
 
    width: 100%; 
 
    height: 100%; 
 
}
<body> 
 
    <div> 
 
    text 
 
    </div> 
 
</body>

在这种情况下DevTools我们可以看到 - DIV不`吨有从身体的任何继承的属性。 但如果我将字体大小添加到body - div继承font-size,width和height属性。

帮我理解,发生了什么事?

+0

CSS使用框模型,您可能需要阅读它 –

+0

它被继承。尝试改变'宽度:100px'而不是'100%'并检查div现在只有'100px' – ketan

+2

@SatejS这与盒子模型无关。 – 2016-03-03 06:01:35

回答

1

默认情况下,宽度和高度值被设置为自动。如果你想使用你的父应用到子的高度,那么你需要明确地继承他们:

body{ 
    height: 100%; 
} 
body > div{/*otherwise, it was auto height*/ 
    height: 100%; /*Or, inherit*/ 
} 

的事实:

w3cwidthheight定义继承NO

您可以看到在css herehere in other SO answer中继承的属性列表。

方位边界折叠边界间距标题边颜色光标方向高程空单元字体家族字体大小字体样式字体变体字体大小体重,字体,字母间距,行高,列表样式图像,列表样式位置,列表样式,列表样式,孤儿,音高范围,音调,引号,丰富程度,说话标题,说话,数字,讲标点符号,说话,语音速度,压力,文本对齐,文本缩进,文本转换 知名度 语音家庭 量 空白 寡妇 字间距

4

CSS属性可以是,也可以不是width未被继承。 font-size是。有关继承的信息,请参阅this MDN page

每个CSS属性(如this one for font-size)的MDN页面都会告诉您属性是否被继承。

因此,将font-size应用于body将导致(默认情况下)子元素具有相同的大小。相反,将width应用于身体不会将这种宽度应用于孩子(这是毫无意义的)。

相关问题