2012-02-06 3 views
0

내가 가진 말할 수 있습니다컨테이너를 절대적으로 배치했을 때 컨테이너를 확장하는 방법은 무엇입니까?

CSS :

.mainWrap { position: relative; overflow: hidden; } 
.wrap-boxes { positon: relative; } 
.box { position:absolute (position and height is generated by plugin isotope: http://isotope.metafizzy.co/custom-layout-modes/centered-masonry.html } 

HTML :

<div class"mainWrap"> 
    <div class="wrap-boxes"> 
     <div class="box"></div> 
     <div class="box"></div> 
     <div class="box"></div> 
    </div> 
    </div> 

clearfix은 그것의 절대 위치를 가진 요소가 작동하지 않습니다 - 박스 포장에 적용.

그러므로 jQuery를 사용하여 랩 상자를 확장하려면 상자의 높이를 계산해야합니다. 나는이 상자의 높이가 무작위로 높다는 것을 모르고 있으며 상자가 클라이언트에 의해 끊임없이 생성되므로 상자의 수를 모릅니다. 나는 그것을 해결하는 일반적인 jQuery가 필요할 것이다. mainWrap을 확장하지 않으면 상자가 잘리고 오버플로를 사용해야합니다. 다른 이유 때문에 숨겨져 있습니다.

어떤 도움이 필요합니까?

+1

내가 볼 수 없습니다 귀하의 HTML에 포장 상자, 포장 상자가있어, 그게 당신이 무슨 뜻인지 확실하지 않습니다. 또한 위의 코드는 모든 상자를 서로 겹쳐 놓기 때문에 다소 잘못되었습니다. 또한 jQuery가 필요 없다고 생각합니다. CSS로 할 수 있습니다. – bzx

+0

죄송합니다. 위의 코드를 업데이트하십시오 –

답변

2

어쩌면 이런가? 순수에서

$.fn.wrapHeight = function() { 
    return this.each(function() { 
     var height = 0; 
     $(this).children().each(function() { 
      height += $(this).height(); 
     }).end().height(height); 
    }); 
}; 

$('.wrap-boxes').wrapHeight(); 
+0

감사합니다. 내가 주위에 경계를 적용한다면 .wrap-boxes는 그 높이가 변경되지 않았다는 것을 알려주는 1xpx 상단 만 볼 수있다. –

+0

미안하지만, 증가하기 전에 기본값으로 0을 추가하는 것을 잊었다. 다시 시도하십시오. – David

+0

supadupa :) 감사합니다! –

1

절대적으로 배치 된 요소는 더 이상 레이아웃의 일부가 아닙니다. JavaScript를 사용하여 하위 요소의 크기와 위치를 측정하고 이에 따라 상위 요소의 크기를 설정해야합니다.

+0

예 .. 어떻게해야합니까? :) –

1

다음 사용할 수 JavaScript :

var wrapbox = document.getElementById('mainWrap').childNodes[1], 
    els = wrapbox.childNodes, 
    i, 
    height = 0; 

for (i in els) { 
    if(els[i].nodeType == 1) { 
     height += parseInt(els[i].offsetHeight); 
    } 

    wrapbox.style.height = height + 'px'; 
} 

http://jsfiddle.net/AJLe7/1/

공지 사항 내가 대답을 단순화하는 id="mainWrap"class="mainWrap"를 변경 ...

+0

jQuery 주위에 내 머리를 얻으려고 고마워 남자, 순수 js 너무 많이 내 현재의 기술에 대해 인정해야합니다 :) –

+1

@ rob.m np, 항상 마음에 계속 jQuery 자바 스크립트 :) – xandercoded

관련 문제