1

私は次のクラスを持っています:

a.greenbutton, input.greenbutton  {
    /*background: url("../image/button.png") repeat-x scroll left top transparent;*/
    behavior: url("/css3pie/PIE.php");
    -webkit-border-radius: 7px;
    -moz-border-radius: 7px;
    border-radius: 7px 7px 7px 7px; 
    cursor: pointer;
    display: inline-block;
    line-height: 11px;
    padding: 6px 12px;
    text-decoration: none;
    background-color: green;
    color: white;
    position:relative;
    z-index: 0;     
}

PIE.php ファイルは次の場所にあります。/root/css3pie/

ここで見ることができます:

http://trashtalk.dk/

違いを確認するには:

http://trashtalk.dk/Apple/iPhone

次の場所からファイルをダウンロードすることもできます。

http://trashtalk.dk/css3pie/PIE.php

私は何を間違っていますか?

4

1 に答える 1

0

絶対パスを使用しているのではなく、相対パスを使用しています。あなたの質問に答えるために、私はあなたのルートフォルダに関連してあなたのcssファイルがどこにあるかを知る必要があります。

なぜなら...たとえば、root / styles /などの場合、パイルールには/csspieのものの前に2つのドット「..」が必要です。

言い換えれば、代わりに:

behavior: url("/css3pie/PIE.php");

必要なもの:

behavior: url("../css3pie/PIE.php");

しかし、これは単なる推測作業です。cssファイル/フォルダーが最初にどこにあるかを知る必要があります。

OK、このページを参照してください:

http://css3pie.com/documentation/known-issues/

動作URL

IEは、他のすべてのCSSプロパティのようにCSSファイルではなく、ソースHTMLドキュメントに関連する動作プロパティのURLを解釈します。これにより、URLは次のいずれかである必要があるため、PIE動作の呼び出しが不便になります。

ドメインルートから絶対的—これによりCSSがディレクトリ間で簡単に移動できなくなります—またはHTMLドキュメントと比較して—これによりCSSが異なるHTMLファイル間で簡単に再利用できなくなります。PIEで解釈されたCSSプロパティのURL

PIEはCSSスタイルシートを解析しません(解析するのは許容できないほど遅くなります)。IEは、解析、セレクタクエリ、カスケードなどを処理し、結果のプロパティ値を要求するだけです。これは、PIEがプロパティ値を取得するときに、その値が発生したコンテキストを認識していないことを意味します。

その結果、URL値を含むプロパティ(border-imageや-pie-backgroundなど)の場合、PIEはそれらのURLが表示されるCSSファイルに関連してそれらのURLを解決できません。代わりに、ソースHTMLドキュメントの場所であるJavaScript実行コンテキストに関連してそれらを解決します。

乾杯
G

アップデート:

これらすべてを1つずつ系統的に試したことを確認してください。

  1. 動作:url( "../ css3pie / PIE.php");
  2. 動作:url( "/../ css3pie / PIE.php");
  3. 動作:url( "http://trashtalk.dk/css3pie/PIE.php");

UHMMM ...あなたのcssのcss3パイルールはどこにありますか?-pie-backgroundのようなものは見当たりません。

于 2012-05-19T02:13:10.133 に答える