이것은보고 된 웹킷 (chrome / safari) 버그이며, 키가 최소 인 부모의 자녀는 height 속성을 상속 할 수 없습니다. https://bugs.webkit.org/show_bug.cgi?id=26559
분명히 Firefox도 영향을받습니다 (현재 IE에서 테스트 할 수 없음)
가능한 해결 방법 :
- 위치를 추가합니다 : #containment
- 위치 추가 : # containment-shadow-left에 절대
내부 요소에 절대 위치가 있으면 버그가 표시되지 않습니다.
http://jsfiddle.net/xrebB/를 참조하십시오
2014 년 4 월 10 일 편집
나는 현재 내가하는 프로젝트에서 일하고 있어요 때문에 정말 와 부모 컨테이너가 필요 min-height
컨테이너의 높이를 상속하고, 자식 요소를 좀 더 많은 연구를했다.
첫째 : 현재 브라우저 동작이 실제로 버그인지 확실하지 않습니다. CSS2.1 사양은 다음과 같이 말합니다.
백분율은 생성 된 상자를 포함하는 블록의 높이를 기준으로 계산됩니다. 포함하는 블록의 높이가 명시 적으로 지정되지 않은 경우 (즉, 내용 높이에 따라 다름)이 요소가 절대적으로 배치되지 않으면 값은 'auto'로 계산됩니다.
컨테이너에 최소 높이를 넣으면 높이를 명시 적으로 지정 하지 않으므로 요소의 auto
높이를 가져와야합니다. 이것이 바로 Webkit과 다른 모든 브라우저가하는 일입니다.
둘째, 내가 찾은 해결 방법 :
컨테이너 요소를 display:table
로 설정 height:inherit
하면 min-height
100 %를 주는 것과 정확히 동일한 방식으로 작동합니다 . 더 중요한 것은 자식 요소를 설정 display:table-cell
하면 컨테이너 요소의 높이를 100 % 이상으로 완벽하게 상속합니다.
전체 CSS :
html, body {
height: 100%;
margin: 0;
}
#container {
background: green;
display: table;
height: inherit;
width: 100%;
}
#content {
background: red;
display: table-cell;
}
마크 업 :
<div id="container">
<div id="content">
<p>content</p>
</div>
</div>
http://jsfiddle.net/xrebB/54/를 참조하십시오 .
display:flex
하고flex-direction:column
하고 아이를 포기flex:1
.