2011-07-21 25 views
0

問題が残っています。 私は通常、画面よりも幅が広い画像をウェブサイト上に持っています。私がしたいのは、ブラウザのサイズを変更しても、常に中央を見るようにこの画像を移動することです。このようなCSSで画像の中央を見る

コード:

.center { 
     position: relative; 
     margin-left: auto; 
     margin-right: auto; 
    } 

<img class="center" src="picture.jpg"> 

は役立ちません。

私は適切な解決策を見つけることができません。イメージを動的に変更したいので、イメージをCSSの背景として使用することは役に立ちません。

CSSでこれを行うこともできますか? JavaScriptを使うべきですか?

読んでいただきありがとうございます!

+0

あなたも動的 –

+0

の要素の背景を変更することができますが、画像の静的ですか?換言すれば、画像の寸法は変わるだろうか? – rcravens

+0

幅は常に同じです - 高さは画像によって異なります – SideEffect

答えて

3

背景イメージを使用してください。 JavaScriptを使ってCSS(疑似:ホバー)だけでなく、(より効果的に)変更することもできます。

.center { 
    background: transparent url('/path/to/image') center center no-repeat; 
    width: 100%; 
    height: 100%; 
} 
.center:hover { 
    background: transparent url('/path/to/another/image') center center no-repeat; 
} 

のJavaScript(jQueryの)

$('.center').css('background-image','url(/path/to/image)'); 
+0

彼はすでにbg画像を持っていますか?これは悪いハックです。体幅のような標準的な方法を使用してください100% –

+2

@Jonah Katz ...何ですか? – wanovak

+0

ありがとう!幅と高さを100%に設定すると、画像タグとともに使用するとブラウザサイズ全体に拡大されます。 'auto'を使うとこれを元に戻しますが、画像の中央を見るのには役立ちません。 – SideEffect

0

何トップの使用に関する:50%と左:50%をあなたのCSSで画像の中央に配置しますか?少し遅れて相手に

+0

まだオフになっています。そのようにするには、 'top:50% - (image width/2)'と 'left:50% - (image width/2)'のようにする必要があります。これはJavaScriptで実現できますが、CSSだけでは不可能です。 – wanovak

0

が、私は、これはあなたが欲しいものだと思う:

.center { 
    position:absolute; 
    top:0; left:0; right:0; bottom:0; 
    margin:auto; 
}