2012-11-19 2 views
4

고정 폭 DIV가 더 많은 정보를 팝업하는 클릭 가능한 콘텐츠로 사이트를 만들고 있습니다. 이 정보는 꽤 길 수 있고 정적 배경 위에 수직으로 스크롤해야합니다. (Pintrest와 유사). 기본적인 스크롤 작업이 작동하지만 모든 콘텐츠를 올바르게 래핑 할 수 있도록 내 콘텐츠 DIV의 높이를 설정하는 방법을 알아 내려고하는 데 어려움을 겪고 있습니다. 그대로 서서 내용은 DIV 맨 아래로 흐릅니다.유연한 내용이 들어있는 브라우저의 스크롤 막대로 스크롤하는 DIV를 어떻게 만들 수 있습니까?

여기를 간단한 예제로 줄였습니다. 결과

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8" /> 
    <title>Scroller Test</title> 
    <style> 
    * { 
    margin: 0; 
    } 
    html, body { 
     height: 100%; 
     background-color: #7A7A7A; 
     overflow: hidden; 
    } 
    #scroller { 
     position: fixed; 
     top: 0px; 
     left: 0px; 
     bottom: 0px; 
     right: 0px; 
     overflow-x: none; 
     overflow-y: scroll; 
    } 
    .infobox { 
     position: absolute; 
     top: 0px; 
     left: 100px; 
     width: 525px; 
     height: 100%; 
     z-index: 100; 
     background-color: #fff; 
     overflow: visible; 
     display: block; 
     padding: 0; 
     margin: 50px 0px 50px 0px; 
    } 
    .infobox-content { 
     position: absolute; 
     width: 475px; 
     margin: 0px 25px 0px 25px; 
    } 
    </style> 
</head> 
<body> 
    <div id="scroller"> 
    <div class="infobox"> 
     <div class="infobox-content"> 
     <h2>Heading</h2> 
     <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem. Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius. Claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum. Mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima. Eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.</p> 
     <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem. Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius. Claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum. Mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima. Eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.</p>   
     <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem. Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius. Claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum. Mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima. Eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.</p>   
     <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem. Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius. Claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum. Mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima. Eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.</p>   
     </div> 
    </div> 
    </div> 
</body> 
</html> 

: 내 DIV가 전혀 높이가없는 height을두면 Example of what's going wrong.

은 그래서 흰색 배경이 전혀 표시되지 않습니다. 분명히 높이의 픽셀 수를 정할 수는 없습니다. 여백 조정, 여백 조정 등을 시도했지만 아무런 효과가 없습니다. 분명히 나는 ​​이것을 다른 곳에서 해본 것처럼 매우 단순한 것을 간과하고있다. 다른 웹 사이트의 CSS를 살펴보면 내가 뭘 잘못하고 있는지 알 수 없습니다.

참고 :이 예제에서는 기본 'infobox'div 내에 간단한 콘텐츠 div 만 있지만 전체 사이트에는 'infobox'내에있는 다른 것들, 이미지 갤러리, 버튼 등이 있습니다.

답변

3

.infobox에 다음 속성을 추가

min-height: 100%; 

또는 당신은 단지 전체 높이 속성을 제거 할 수 있습니다. 그것은 신체/HTML로 높이 기준을 설정하기 때문에 그러나 height: 100% 다음

그리고가 .infobox-contentposition: absolute을 변경 (적어도 바이올린에) 작동하지 않습니다

position: relative; 

이 방법을 .infobox의 높이는 것 당신은같은으로 .info-box의 높이를 설정하려면 .infobox-content

http://jsfiddle.net/94B7H/2/

+0

@DaveSag? http://jsfiddle.net/94B7H/1/ – Michelle

+0

그보다 가깝습니다. 열쇠는 'infobox-content'를'position : relative;'로 설정하는 것 같다. 감사. –

+0

@DaveSag가 내 답변을 편집했습니다. :) – Michelle

2

에 "스트레칭". .infobox-contentposition:relativeposition:absolute을 변경하고 .info-box 여기

당신을 위해 바이올린 년대 height:100%에서 제거 :이 같은 http://jsfiddle.net/wandarkaf/UBJAZ/

+0

미안하지만, DIV 안에는 스크롤 바가 놓여 있는데, 그 스크롤바는 내가 쫓아가는 것이 아닙니다. 미셸 라라 린 (Michelle Lara Lin)의 대답에 대한 제 코멘트를보십시오. –

+0

내 대답이 업데이트되었습니다. 나는 당신의 필요에 더 정확하게 희망한다. – wandarkaf

+0

네, 꽤 많이 작동합니다. Michelle은 약 5 분 동안 자신의 의견에 똑같은 대답을했습니다. 그렇다고해서 공정하기 위해서, 나는 그녀에게 승리의 답을 똑딱 거리기 전에 대답을 정리할 기회를 줄 것입니다. –