4

固定幅のDIVをポップアップして詳細情報を表示するクリック可能なコンテンツを含むサイトを作成しています。この情報は非常に長くなる可能性があり、静的な背景の上を垂直にスクロールする必要があります。(たとえば、Pintrestに似ています)。基本的なスクロールアクションは機能していますが、すべてのコンテンツを正しくラップするようにコンテンツ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>

その結果: 何がうまくいかないかの例。

省略した場合height、DIVには高さがまったくないため、白い背景はまったく表示されません。もちろん、高さの特定のピクセル数を設定することはできません。余白やパディングなどを調整してみましたが、無駄になりました。他の場所でこれが行われているのを見たので、明らかに私は非常に単純なことを見落としています。他のWebサイトのCSSを見ると、自分が間違っていることがわかりません。

この例では、メインの「インフォボックス」div内に単純なコンテンツdivしかないことに注意してください。ただし、フルサイトには、「インフォボックス」内にも入る他のもの、画像ギャラリー、ボタンなどがあります。

4

2 に答える 2

3

次のプロパティを に追加します.infobox

min-height: 100%;

または、高さのプロパティを完全に削除することもできます。ただしheight: 100%、body/html に相対的な高さを設定するため、(少なくともフィドルでは) 機能しません。

次に、 in を次のように変更position: absolute.infobox-contentます。

  position: relative;

このように、の高さ.infoboxは「伸びる」.infobox-content

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

于 2012-11-19T07:29:01.953 に答える
2

.info-boxの高さをと同じに設定したい場合.infobox-contentposition:absoluteposition:relativeオンに変更し、から.infobox-contentを削除height:100%します.info-box

ここにフィドルがあります:http://jsfiddle.net/wandarkaf/UBJAZ/

于 2012-11-19T07:32:08.777 に答える