2012-03-02 3 views
0

블록 요소 (img 또는 div)를 너비와 높이가 % 인 컨테이너에 가운데 놓으려고합니다.jQuery 및 CSS 여백을 사용하여 자동 중심 세로 및 가로 여백을 자동 조정하는 방법

다음은 내가 한 일입니다. http://jsbin.com/ibakuw

$('#container img') 
    .css({ 
     'margin': ($('#container').height() - $('#container img').height())/2 + 'auto', 
     'background':'red'}); 

나는 요소가 브라우저 또는 컨테이너를 오버 플로우 때문에 수직으로 중심이 {position:absolute; top:50%; height:240px; margin-top:-120px; } 접근 방식을 사용하지 않습니다. 브라우저 내에서 제약이 필요합니다.

도와주세요. 고맙습니다!

편집 :

내가 여기 http://jsbin.com/ibakuw/5

var contHeight = $('body').height(), 
    paddVertical = ($('#container').height() - $('#container img').height())/2, 
    paddHorizon = ($('#container').width() - $('#container img').width())/2; 

$(function() { 

    $('#container img') 
    .css({ 
     'marginLeft' : paddHorizon +'px', 
     'marginTop' : paddVertical +'px' 
    }); 


    $(window).resize(function() { 
    $('#container img') 
     .css({ 
     'marginLeft' : paddHorizon +'px', 
     'marginTop' : paddVertical +'px' 
     }); 
    }); 

}); 
+1

당신이 마진'추가 시도해 봤어 : 자동;'#container img' css? http://jsbin.com/ibakuw/2 – arunes

+0

네,하지만 저는 그것이 수평 적으로 만 작용한다고 생각합니다. 저는 수직 문제를 해결하려고 노력하고 있습니다. – Pennf0lio

답변

1

체크 아웃 여기 내 예를 $(window).resize(function() {을 추가 나는 당신의 정확한 설정이 없다면 http://jsfiddle.net/z8gph/

이 내가 대답을 얻을 수있는 가장 가까운 당신의 문제.

첫 번째는 외부 컨테이너와 내부 컨테이너를 상대적으로 배치합니다.

jquery를 세로로 가운데로 사용하면 외부 컨테이너 높이에서 내부 컨테이너를 뺀 값을 2로 나눕니다. 그런 다음 내부 컨테이너의 상단에 .css을 설정합니다.

var center = ($("#outer").height()-$("#inner").height())/2; 
$("#inner").css({"top":center}); 

편집

체크 아웃 나의 새로운 예를 http://jsfiddle.net/z8gph/1/

당신이 그것을 가로 여기에서 보는 센터 도움 margin: 0 auto;을 설정하지 않고 작업 할 경우 http://jsfiddle.net/z8gph/2/

+0

시도해 주셔서 고마워 ....하지만 브라우저 크기를 조정할 때 중심으로 찾고 있습니다. 브라우저 크기가 변경되면 값이 업데이트되어 센터로 업데이트됩니다. 고마워요 :) – Pennf0lio

+0

@ Pennf0lio 내 편집을 확인하십시오 – Henesnarfel

+0

편집 해 주셔서 감사합니다. 너는 내 새로운 영웅이야 :) – Pennf0lio

관련 문제