2016-11-06 21 views
0

私は3つのdivを持っていますが、すべては隣り合わせでなければなりませんが、3番目のdivは自分の位置に固定する必要があります。私はright:0、float:rightを使ってみましたが、これらのケースでは3番目のdivは他の2つに固執せず、代わりに正しいブラウザ側に固執します。私はJavaScriptの計算ウィンドウの幅に応じてそれを移動する必要がありますか、それを行うhtml/css(多分ブートストラップ)の方法はありますか?3つのdiv、3番目の固定位置

私はHTMLを次ています

 <div id="sub-container"> 
      <div id="left"> 
       {left} 
      </div> 
      <div id="content"> 
       {content} 
      </div> 
      <div id="right"> 
       {right} 
      </div> 
     </div> 

そして、このようなCSS:

#left { 
    float:left; 
    top:$topbarHeight; 
    width:$leftWidth; 
    position:relative; 
    margin:2px auto; 
    min-height:600px; 
    z-index:1; 
} 

#right { 
    width:$rightWidth; 
    height:604px; 
    top:$topbarHeight; 
    position:fixed; 
    margin-left: 10px; 
} 

#sub-container { 
    position:relative; 
    float:left; 
    max-width:724px; 
    margin:auto; 
    clear: both; 
} 

#content { 
    position:relative; 
    top:$topbarHeight; 
    float:left; 
    max-width:600px; 
} 

答えて

0

あなたは絶対的ではなく、固定に右のdivの位置を変更した場合、それがそれぞれの右の距離に移動しますブラウザではなくサブコンテナを使用します。

+0

3番目のdivは固定されている必要があるため、絶対に変更しても問題は解決しません。 – Stefan

+1

私はそれ以上のことを考えなければなりませんが、これを達成するためにはJavaScriptを使用しなければならないようです。私の頭の上から、親divが画面上にあるときにスクロールスパイの何らかの処理をしてから、スクロールが行われるときに第3 divsのトップ値を調整すると、これが達成されます。これはまだ絶対位置を使用しています。 固定された位置は、ある種のjavascript関数と同様に実行する必要がありますが、親のオフセットの上端と右端をチェックして、3番目のdivの右と上の測定値を追加する必要があります。 – jjeining

0

すべてfloat: leftを取得してから、右側の数字がposition: absolute、中の数字がposition: relativeになります。そして、それは中間のものの右に固執し、あなたはそれを得ることができます、その位置。

+0

私は絶対位置に変更した場合、もはや修正されていません、私はまたそれを修正する必要がありますまた、ブラウザにコンテンツに固執する必要があります。 – Stefan

0

#right { 
 
    right:50%; 
 
    height:604px; 
 
    transform: translateX(312px); /*half of your container*/ 
 
    position:fixed; 
 
    margin-left: 10px; 
 
    top:0; /*or however far from the top you want it */ 
 
}

あなたがブレーク#pointに変換して、右0またはしかしこれまであなたがそれをしたいエッジからに設定解除し得ます。

関連する問題