2012-02-20 5 views
1

私はCSSスプライトを使用していますが、その上にマウスを置くと、同じイメージに対して別のリクエストがあり、ちらつきが発生します。 2つのリクエストを作成する理由は何ですか?ここに私のコードです:CSSスプライトはまだ新しいリクエストを作成しています

.btn-red-lrg .left {background:url(../images/site-sprite.png) no-repeat 0px 0px transparent;width: 9px;}  
.btn-red-lrg:hover .left {background:url(../images/site-sprite.png) no-repeat 0px -37px transparent;width: 9px;} 

答えて

5

background-shorthandプロパティを使用しないでください。代わりに位置を更新したいので、background-positionを使用してください。

/* no need for width, background-image etc. */ 
.btn-red-lrg:hover .left {background-position: 0px -37px;} 

キャッシュメカニズムが十分ではないか、有効期限が(Jeff's answerを参照)欠落している/間違っている場合:hover擬似クラスのbackground-image:url(...)を指定すると、新しい要求が発生することができます。ポジションを変更しても、ブラウザに関係なく新しいリクエストは発生しません。

+0

これは良い習慣ですが、どのようにこの質問を解決しますか? – Jeff

+1

@Jeff: ':hover'擬似クラスで' background-image:url(...) 'を指定すると、キャッシュ機構が十分でないか、(あなたの答え)有効期限がないか間違っています。ポジションを変更しても、ブラウザに関係なく新しいリクエストは発生しません。しかし、あなたは正しいです、私は質問に答えませんでした* "2つの要求を作る理由は何ですか?" *、私の悪い:/。あなたの答えに+1。 – Zeta

+0

@Zeta great catch!そのトリックをした。本当にありがとう! –

関連する問題