1、問題描述:
????????????給子元素設(shè)置 margin-top 是 10%宪睹,則這個百分比的基數(shù)是父元素的寬度愁茁。
2、問題解析:
????????????當margin/padding取形式為百分比的值時亭病,無論是left/right鹅很,還是top/bottom,都是以父元素的width為基數(shù)進行渲染的罪帖。
? ? ? ? ? ? 比較有說服力的一種說法是促煮,父元素的高度往往由子元素來決定,如果margin-top比例增加整袁,相應(yīng)的菠齿,父元素高度也會進行適應(yīng)性增加,此時父元素增加的同時坐昙,margin-top的實際數(shù)值又會發(fā)生適應(yīng)性變化绳匀,雙向因果會造成循環(huán),所以W3C的規(guī)范做出了以上規(guī)定。
在查詢資料的過程中疾棵,有人提出盗飒,如果子元素高度確定的情況下,只要給出margin-top的比例數(shù)值陋桂,就可以通過數(shù)學(xué)公式得到父元素高度的數(shù)值逆趣,不存在循環(huán)。個人感覺即使子元素高度確定嗜历,父元素高度也已經(jīng)確定了宣渗,父元素的自適應(yīng)根據(jù)子元素直接適應(yīng),在margin/padding設(shè)置過程中梨州,父元素已經(jīng)確定痕囱,肯定會直接抓取父元素高度數(shù)據(jù)進行渲染,渲染結(jié)果也必然會造成margin/padding數(shù)值的偏差暴匠。說能計算出父元素高度并進行渲染的是不是忽略了網(wǎng)頁元素渲染的先后與主次鞍恢,也許高估了網(wǎng)頁渲染的智能程度,真正原因是什么每窖,其實不必太糾結(jié)帮掉,W3C提出了標準,我們按標準進行開發(fā)即可窒典。