2013-07-11 7 views
0

나는이 사업부를 만들기 위해 노력하고있어 기반으로 동적 평방 사업부 :센터 높이

윈도우의 중앙에 동적으로 창
C의 높이에 따라 크기로) 광장
B)) (가로 및 세로로)

그리고 나는 한 번에 3 개 모두를 얻을 수 없습니다. 나는 SO 주변을 많이 둘러 보았고 트릭 (display:table-cell, :before 요소 등) 중 아무 것도 나를 위해 작동하지 않는 것 같습니다. 내가 얻은 가장 가까운 것은이 두 개의 JSFiddles에서 볼 수 있습니다. http://jsfiddle.net/LN78N/http://jsfiddle.net/EKarx/ (둘 다 창의 크기를 조정하려고 시도 할 때까지)

크기가 조정 된 JSFiddle을 다시 실행하면 올바른 모양과 크기를 찾습니다. 따라서 상자가 잘 표시되는 일종의 피드백 루프가 실행 된 것 같습니다. , 제대로 리플 로우되지는 않습니다.

왜 이런 일이 발생했는지 또는 내가하려는 일을 성취하는 방법에 관한 모든 의견은 인정 될 것입니다. 감사!

+0

당신은 높이와 동일한 폭으로, 그것은 * 사각형 * 진정으로해야합니까? –

+0

자바 스크립트 솔루션을 사용하지 않고도이 작업을 수행 할 수 있다고 생각하지 않습니다. 문제는 창 방향을 한 방향으로 만 조정하고 높이 및 너비 속성을 모두 100 %로 설정하면 하나가 다른 것보다 커질 수 있다는 것입니다. 당신이 할 수있는 일은 window.resize 함수에 이벤트 처리기를 연결하고 크기를 변경할 때 크기가 작은 백분율로 너비와 높이를 설정하도록하는 것입니다. – Rooster

+0

아이디어는 최대한 정사각형이되도록하는 것입니다. 이것은 구현 문제에서 학문적 문제로 넘어갔습니다. 오늘날 크로스 브라우저에서 작동하는 도구로 html/css에서만 이러한 세 가지 요구 사항을 충족시킬 수 있습니까? – gsroth

답변

3

은 (최신 브라우저에서 see fiddle) CSS3 단위 및 값에서 vh unit를 사용하여이 작업을 수행하는 것은 매우 간단하다

.square { 
    background: #ccc; 
    height: 60vh; 
    width: 60vh; 
    margin: 20vh auto; 
} 
+0

니스! 우리가 현대적인 브라우저의 세계에 살면 좋을 것입니다. :-) – isherwood

+0

이것은 훌륭한 해결책입니다! 전반적으로 구현 되었으면 좋겠지 만 지금은 사용해야하고 더 많은 지원이 이루어 지길 바랍니다. – gsroth

+0

와우 정말 대단합니다! – Rooster