2016-12-16 8 views
1

그래서 이것이 나를 미치게했습니다. 순수한 CSS로이 작업을 수행 할 수있는 방법이 있는지 궁금합니다. 내가하려고하는 것은 고정 된 높이의 부모 div (보라색)를 갖는 것입니다. 그 보라색 div 안에 오렌지색 div를 유지하고 가로 세로 비율을 유지하고 상위 div의 높이까지 비율을 바꿉니다. 상위 div의 크기를 변경하면 주황색 div가 가로 세로 비율에 맞게 조정됩니다.가로 세로 비율을 유지하면서 부모 div에 맞게 사각형 div 크기를 조정하십시오.

참고 : 이미지 또는 비율로 부모 높이가 없으면이를 수행하려고합니다.

참조 예 : enter image description here

+0

가능한 복제 (http://stackoverflow.com/questions/26438388/maintain-div-aspect-ratio-according-to-height) –

+0

아니요 부모의 이미지와 고정 된 높이가 없으면이를 수행하려고합니다. –

+0

이미지는 트릭의 일부입니다. 투명 (보이지 않는) 1x1 PNG로 만들 수 있으며 여전히 작업을 완료 할 수 있습니다. 이 방법을 사용하면 부모가 고정 된 px 금액이 아닌 임의의 높이가 될 수 있습니다. –

답변

0

당신은 몇 가지 간단한 JS와 함께 할 수 있습니다. 아이 (또는 부모)의 높이를 가져 와서 너비를 설정하십시오. 필요에 따라 계산을 사용하여 원하는 비율을 얻을 수 있습니다.

var width = document.getElementById('child').offsetHeight; 
 
document.getElementById('child').style.width = width + 'px';
#parent{ 
 
    width: 100%; 
 
    height: 100px; 
 
    background-color: purple; 
 
} 
 
#child{ 
 
    height: 100%; 
 
    background-color: yellow; 
 
}
<div id="parent"> 
 
    <div id="child"></div> 
 
</div>

[DIV 높이에 따라 종횡비를 유지]의
+0

보내 주셔서 감사합니다. JS가 유일한 방법이라고 생각하십니까? 나는 순수한 CSS로 해결하려고 노력하고있다. 플렉스 박스 (flex box)와 몇 가지 마진 해킹을 해보고 내가 제대로 작동하는지 알아보기. –

+0

css에는'calc' 함수가 있습니다.이 함수는 어떤 일을 할 수있게 해주지 만, 실제로 필요한 것은 css 변수입니다 ... 이것은 브라우저 간 호환이 아닙니다. – mhatch

+0

나는 단지 쉿 소리를 사용하여 끝났다. –