对元素的margin设置百分数时,百分数是相对于父元素的width计算,不管是margin-top/margin-bottom还是margin-left/margin-right。padding的原理也是一样的。
为什么margin-top/margin-bottom的百分数是相对于width而不是height呢?
CSS权威指南中的解释:
我们认为,正常流中的大多数元素都会足够高以包含其后代元素(包括外边距),如果一个元素的上下外边距是父元素的height的百分数,就可能导致一个无限循环,父元素的height会增加,以适应后代元素上下外边距的增加,而相应的,上下外边距因为父元素height的增加也会增加,如此循环。
原文:https://blog.csdn.net/i_will_be/article/details/77404722