2012-09-17 7 views
9

私はパスがcssファイルに相対的であると思われますが、カーソルとして使用しようとしている画像ではそうではないようです。カーソルのURLはcssファイルに相対的ですか?

ファイル構造は次のとおりです。

Content/Site.css 
Content/images/butteryfly.ani 
Content/images/user.png 

Site.css:

.butterfly 
{  
cursor: url('Content/images/butterfly.ani'), pointer;  
} 

ないのはなぜ相対URLの作業:それは私がそれを変更した場合に動作

.butterfly 
{  
cursor: url('images/butterfly.ani'), pointer;  
} 

/*this works*/ 
.ui-icon-user 
{ 
    background-image: url(images/user.png) !important; 
    background-position: 0 0; 
} 

カーソルのために?

編集: Chrome、Firefox、IE9では動作しません。すべてのブラウザで、カスタムカーソルの代わりにハンドカーソルが表示されます。

編集2:フォローアップ:実際に私のサイトでこれを動作させるにはどうすればよいですか?htmlページはさまざまなレベルにありますか?どういうわけかcssで相対URLを指定する方法はありますか?それとも、各ページと同じレベルのカーソルをコピーするだけですか?

答えて

14

IEとFFの両方で機能するには、.cur拡張子を使用する必要があります。 IE11以前では、カーソルファイルのURLは、CSSファイルではなく、ページとの相対的なものです。

cursor: url('http://example.com/Content/images/butteryfly.cur'), default; 

2つのURL値を使用しないようにしてください。これにより、IEによってサーバーに不当なヒットが発生します。代わりに、IE、FF、Chromeで正常に動作する絶対URLを使用してください。 Operaはデフォルトを使用します。

5

Internet ExplorerがHTMLドキュメントに相対的な相対URLを解釈するのはわかっていますが、最新のブラウザ(Mozilla Firefox、Google Chrome)では相対URLが ".css"に相対的であると解釈されます。

/* 
The CUR and CSS files are in the same folder, the HTML is in a directory above this CSS  file 
*/ 

#example { 
    cursor: url('arrow.cur'),   /* Modern browsers */ 
      url('style/arrow.cur'),  /* Internet Explorer */ 
      default; 
}  
+0

私もChromeでテストしましたが、そこではうまくいきません - 私は今Firefoxをチェックします> Firefoxもうまくいきません – woggles

+0

私の前のコメントをスクラッチします - IEはカーソルURLをHTML文書同様に、 'filter'のものだけではありません。 – BoltClock

+0

あなたが作る最初の声明は実際には真実ではありません。相対URLはIEや他のブラウザーでは、背景画像などの場合とほぼ同じように動作します。唯一の例外は、カスタムカーソルURLの場合です.IEはそれらを相対的なものとして突然解釈しません –

1

この短い記事を読むことをお勧めします。 http://blog.stchur.com/2006/11/02/ie-bug-dealing-with-css-custom-cusors/

IEのバグには3つの回避策があります。IEでは、カスタムカーソルURLを相対的なものとして解釈しません。 URLの他のタイプのタグの間にHTMLページに

  1. 使用絶対パスをIEで正しくジョンC.
  2. によって提供される解決策と同様
  3. 使用IEの条件付きコメントは、
  4. 移動カーソルスタイルを解釈され
関連する問題