为margin设置百分数时,无论是margin-left、margin-top、margin-right、margin-bottom,都是相对于其父元素的width大小设定的,而不是按照height大小设定,padding也是同理。为什么基于width而不是height呢?css的权威解释如下:
我们认为,正常流中的大多数元素都会足够高以包含其后代元素(包括外边距),如果一个元素的上下外边距时父元素的height的百分数,就可能导致一个无限循环,父元素的height会增加,以适应后代元素上下外边距的增加,而相应的,上下外边距因为父元素height的增加也会增加,如果循环。