2012-06-17 6 views
2

알 수없는 너비와 높이의 HTML 요소가있는 경우 어떻게하면 화면 중앙에 정확히 놓을 수 있습니까?알 수없는 너비의 HTML 요소를 화면 중간에 가운데에 배치하십시오.

순수 CSS로 수행 할 수없는 경우 javascript는 정상입니다.

+0

쉬운 CSS 유일한 솔루션을 구현하는 방법은 다음과 같습니다 http://stackoverflow.com/questions/10939288/how-can-i-vertically-center-text-in-a-dynamically-high-div/10939940#10940314 –

+0

고마워, 그거야! – starbeamrainbowlabs

답변

2

이 나 방법 알 수없는 너비/높이에 따라, 상황에 적합하지 않을 수있다이 답변이 결정되고있다 .. JQuery와 통해 그것을 할 수 있습니다.

#content { 
    background-color: khaki; /* demo purposes */ 
    position: absolute; 
    height: 20%; 
    top: 50%; 
    margin-top: -10%; /* half the height */ 
    width: 30%; 
    left: 50%; 
    margin-left: -15%; /* half the width */ 
} 

는 예를 들어 this fiddle 항목 : 정확한 크기는 알 수없는,하지만 그들은이 비율로 설정되어있는 경우, 당신은이 기술을 사용할 수 있습니다. 요약하면 :

  • : 그들은 %에 지정되어 있기 때문에 정확한 크기는 알 수없는 경우에만 적용 할 수 있습니다.
  • pro : 순수 CSS 솔루션.
+0

하지만 OP는 "화면 중간에 알려지지 않은 너비의 HTML 요소 **를 중심에두고 있습니다"라고 말했습니다. – epeleg

+0

알아요, ** 정확한 너비 ** 또는 ** 정확한 너비와 상대 너비 *** 둘 다 알 수없는 경우에는 지정되지 않습니다. 누군가가 '%'너비 (그리고 따라서 ** 정확한 너비 **를 가졌기 때문에)에이 질문을하면 내 대답이 유용 할 수 있습니다. – Jeroen

+0

나는 너의 요점을 보았지만 비슷한 문제로 고생했다. 너비가 알려지지 않았다는 것을 알 때 그는 너비가 %로 알려졌다는 것을의 미한다. 그럴 경우 그는 아마도 수직 중심 배치에 대해 질문했을 것입니다 ... 여전히 미래에 도움이 될 것입니다. – epeleg

2

당신은

$(function() { 
    var element=$("#elementid") 
    element.css("position","absolute"); 
    element.css("top", Math.max(0, (($(window).height() - this.outerHeight())/2) + 
               $(window).scrollTop()) + "px"); 
    element.css("left", Math.max(0, (($(window).width() - this.outerWidth())/2) + 

}); 
+0

감사합니다! 순수한 자바 스크립트 대안이 있습니까? – starbeamrainbowlabs

+1

당신은 아마 할 수는 있겠지만 브라우저 차이점을 직접 다루면 더 많은 것을 의미 할 것입니다 ... – Jeroen

관련 문제