2011-08-10 17 views
3

position:fixedを使用して、すべてのページ要素にスクロール可能な固定スクロール<div id="overlay">があります。 divには固定高さよりも高い要素があるので、スクロールバーが表示されます。私は、それがスクロールされていても段落にとどまりたいツールチップを持っています。ポジションを作る:通常、別のスクロール可能なdivの中の絶対divスクロール

私はここに起こるしたいものですが、残念ながらどちらも私の解決策のが正しく動作:

  1. 私は、ツールチップとposition:relative#overlayに(ツールチップの親)にposition:absoluteを追加:http://jsfiddle.net/4qTke/

    ツールチップは期待どおりにスクロールしますが、#overlayの外側には表示されません。

  2. 私は唯一のツールチップにposition:absoluteを追加:http://jsfiddle.net/Yp6Wf/

    ツールチップは、親#overlayの可視外ですが、div要素がスクロールされたときに移動しません。

私はスクロールしたときに、それが移動するためにツールチップが常に可視およびになりたいです。

+0

本当に良い書き換えです、ありがとうございます! – Pioul

+0

ようこそ。喜んで助けてくれた。ただ一つのヒントがありますか?段落の下またはその横に、容器の内側または外側に、どこに表示する必要がありますか? – tw16

答えて

2

何をしたいだけのCSSとHTMLを使ったことはできません。

あなたが持っている主な問題は、#tooltipが相対的なコンテナにoverflow: scrollを設定していることです。このオーバーフロープロパティは、#tooltipdivの「外側」に配置すると、コンテンツがエッジの外側に表示されなくなるため、非表示になり、スクロール時にのみ表示されます。

position:relativeを設定しないと、#tooltipはコンテナではなくページに関連するため、2番目のシナリオで表示された理由があります。つまり、コンテナのプロパティoverflow:scrollの影響を受けていませんでした。

+0

あなたは正しいです、私はそれについて考えなかった..私はスクロール可能な領域の上部にツールチップが表示され、あまりにも頻繁にオーバーフローしないようにします。 – Pioul

1

HTML:

<div id="overlay"> 

    <div class="elemRel"> 

     <div class="elemAbs"> 

      <!-- Your Code --> 

     </div> 

    </div> 

</div> 

CSS:

#overlay { position:fixed; } 
.elemRel { position:relative; } 
.elemAbs { position:absolute; } 
+0

あなたの答えに感謝しますが、それは私が第1のポイントでしたことです、そして、それは私が望むものではありません:/ – Pioul

0

これはあなたのための代替手段ですか? demo fiddleを参照してください。

+0

それは通常の使用のためにそれを作るだろうが、私の場合ではない、私は本当に段落の下にとどまるために、ツールチップを必要とし、私はスクロールするときにそれに従う。私は@ tw16が正しいと思うし、少なくともJavaScriptを使用しないでこれを行う方法はありません。 – Pioul

関連する問題