如果一个父元素(比如 body )使用了百分比来表示宽高,例如 height:100%;width:100%; ,然后子元素(比如 div )使用固定宽高,再设置百分比外边距,例如 margin-top:100%; ,这个子元素的外边距一定是个错误的值,大家可以试一试。
这种错误在各种前端教程都会提到:“属性百分比的依据是父元素宽高,父元素如果不是用固定的宽高,该属性将会无效”之类的话。
但是,我把这个 Demo 做出来之后,子元素的还是有外边距的,只不过是错误的而已, Chrome 的开发者工具没有显示删除线,外边距也是有的,所以我想深入地问一下:
如果子元素设置了 margin-top:100%,而该元素的所有父元素都设置了百分比的宽高,那么这个显示出来的,错误的外边距的依据究竟是什么?为什么它还能显示出外边距(即便是错误的)?