CSS box model spec 을 보면 다음을 관찰 할 수 있습니다.
[여백] 백분율은 생성 된 상자의 포함 블록 너비 와 관련하여 계산됩니다 . 이것은 '여백 상단'과 '여백 하단'에도 적용됩니다. 포함하는 블록의 너비가이 요소에 의존하는 경우 결과 레이아웃은 CSS 2.1에서 정의되지 않습니다. (강조 광산)
이것은 사실입니다. 그런데 왜 ? 지구상에서 이런 식으로 디자인하도록 강요하는 것은 무엇입니까? 원하는 경우, 페이지 상단에서 항상 25 % 아래로 내려가는 시나리오를 생각하기는 쉽지만, 세로 패딩을 가로 크기에 상대적으로 맞추려는 이유는 찾기 어렵습니다. 부모.
다음은 제가 언급 한 현상의 예입니다.
<div style="border: 1px solid red; margin: 0; padding: 0; width: 200px; height: 800px;">
This div is 200x800.
<div style="border: 1px solid blue; margin: 10% 0 0 10%;">
This div has top-margin of 10% and left-margin of 10% with respect to its parent.
</div>
</div>
height: 10%; width: 10%
사각형 요소를 얻지 못한다고 말하면 .
Note that in a horizontal flow, percentages on ‘margin-top’ and ‘margin-bottom’ are relative to the width of the containing block, not the height (and in vertical flow, ‘margin-left’ and ‘margin-right’ are relative to the height, not the width).
는 두 가지를 간다 그래서
margin: 25%
실제로 무엇 을 의미 하는지 모호하게 만들 것 입니다. 코드에서 제안 했더라도 짝수 마진이 아닙니다. 나는 이것을 뒷받침 할 증거가 없지만 합리적인 것으로 보인다.