2011-12-03 12 views
0

div内にdivがあり、内側のdivをスクロールできるようにしたいと考えています。外側のdivは内側のdivのビューポートです。内側のダイブは垂直方向と水平方向の中央に配置され、外側のdivはoverflow:autoで設定されているため、必要に応じてスクロールが開始されます。奇妙なCSSスクロールの問題、左上にスクロールできない

内側のdivが外側より大きく、スクロールする必要があるときは、右下にもどりますが、左上には到達できません。

Hereは、私が今までに得たもののコピーです。内側のdivを大きくするには、サイズをForce Issueに変更します。

CSS - #Stackの幅、高さ、余白、余白はjavascriptで設定します。

/* The Stack */ 
#StackWrapper 
{ 
    position: absolute; 
    top: 5px; 
    bottom: 5px; 
    left: 330px; 
    right: 5px; 
    overflow: auto; 
} 

#Stack 
{ 
    position: absolute; 
    top: 50%; 
    left: 50%; 
    border: 1px solid black; 
    background-image: url('../images/stripes.png'); 
} 

答えて

0

あなたのDTD宣言は、スタイルシートと一緒に本体内に設定されます(正しく行われません)。

DTD Delcarationはタグの上にある必要があります。

これを行うと、クォークモードや正しく配置されていない問題が解決されます。あなたはあなたが、それは左上から始まり、右下に終わるので、すべてが0のマージンとパディングを持つべきであることを覚えておく必要があり、CSS

element.style { (set by jquery for the selection) 
height: 768px; 
margin: 0; 
padding: 0; 
width: 1024px; 
} 
#Stack { 
background-image: url("../images/stripes.png"); 
border: 1px solid black; 
position: absolute; 
} 

の次の行を変更する必要がありポジショニングを修正するには

。あなたのマージンが断ち切れる場所。

スクロールバーを中央に配置するには、スクロールバーを中央に配置する必要があります。

クイックjQueryのは、私は私の一部にDTD、ダム間違いを固定センター

$("div#StackWrapper").scrollLeft(width/2); 
$("div#StackWrapper").scrollTop(height/2); 
+0

にあなたのdivをスクロールします。残りについては、ラッパーよりも小さい場合、ラッパーのdivを中央に配置するために、上位50%、左50%、および負のマージンが必要です。私はそれがスクロールにどのように影響するのかわかりません。オーバーフロー:自動では、何かがバウンディングボックスの外にあり、私にスクロールさせるはずです。 – Justin808

+0

これをmargin:autoに変更し、jqueryスクロールを追加します。ネガ・マージンと上/左を削除すると、それは私のためにうまくいきます。 –

+0

まあ、これはスクロールの問題を修正しました。それはオーバーフローが右か下のどちらかにしか働かないように見えますが、左右に(ネガマージンで)ではありません。内側のdivが外側のdivの設定よりも小さい場合、マージンは自動的に内側のdivを水平にしますが、垂直にはならないようにします。 – Justin808