最近随手习惯性的写了个样式margin-top: 10%; 本意是想它里上面的高度是现有父节点高度的10%,但事实并非如此。它离上面的高度始终是比预期的多出许多,才发现这个百分比是针对的父元素的宽度,并不是高度。
首先在dom元素的高度,大部分都是没有指定的,所以它真正的高度是由里面的内容撑起来的,也就没有所谓高度的概念,另外高度的这个属性也是不会自动继承的,除非你给它设定继承才会。所以高度这东西的不确定性太多,不太方便用来计算。
而元素的宽度,在大部分情况下,加载的时候就被确定,是一个便于操作的属性,所以margin-left的百分比也是针对的父元素的宽度。padding属性是一样的,只是不能接受负值。