2009-02-26 23 views
3

マイページは画面の2倍です(ページの他の項目によってサイズが異なります)。スクロール位置に関係なく、画面の中央に絶対的に配置されたSPANを表示したい。スクロール後の画面の中央に位置する要素

ボタンクリックで次のスタイルを適用しますが、全部スクロールすると、ページ全体の上部から50%をカウントするため、要素はページの最上部に表示されます。

.Centered { 
    width: 100%; 
    position: absolute; 
    top: 50%; 
    left: 45%; 
} 

ボタンのクリック時にスクロールポーションに基づいてページの中央に要素を配置するにはどうすればよいですか?

ありがとうございます。

答えて

19

fixed positioningは本当に不要ですか?

絶対配置ではページのコンテキスト内に項目が配置されるため、 はページを上下にスクロールします。固定ポジショニングは、アイテムをビューポートのコンテキスト内に配置するため、ページとともに移動しません。代わりに、スクロールしても同じ位置にとどまります。

.Centered 
{ 
    width:100%; 
    position:fixed; 
    top:50%; 
    left:45%; 
} 

メニューon this pageは、固定配置の良い例です。

+0

ctrl + F5はすべて必要です:) –

+2

どうしたらいいですか?**センター**何ですか? – Timwi

+0

Timwi:まあ、私はHTMLローマンを使っていませんが、 'top:50%'は '.Centered'要素をページの途中まで動かし、' left:45% 'が動くでしょうそれは水平な中間に向かう道のほとんどです。したがって、幅のページ幅の約10%の細い要素が中央に表示されます。 – rampion

0
.Centered 
{ 
    position:absolute; 
    width:100%; 
    top:50%; 
    left:50%; 
    margin-height: -200px; 
    max-height: 400px; 
} 

このようにして、トリックは最大高さに適した値を見つけるようになります。

+0

高さは、ページ上にあるグリッド内のアイテムの数によって異なります –

+0

@rm次にグリッドがデータでいっぱいになった後、javascriptで最大高さを動的に設定する必要があります – miceuz

-1

jQuery Center Pluginをお試しください。

+0

デモでは動作しません(http://www.alexandremagno.net/jquery/plugins/center/) –

+0

デモでは何が動作しませんか? –

+0

彼のデモでは何も動作しません。 **中心の**は何もありません。 – Timwi

関連する問題