web-dev-qa-db-ja.com

cakephpを使用しているときにPIE.htcファイルをどこに置くか(IE CSS3で動作させるため))

PIE.htc を使用しようとしています。これは、IE6-8でCSS3機能を使用できるようになるスクリプトです。私はCakephpも使用しています(私はこれを愛するようになっています)

指示に従って、PIE.htcファイルを好きな場所に貼り付けてから、CSSにbehavior: url(path/to/PIE.htc);を追加します。ので、私は持っています:

input[type=text]{
    width:348px;
    height:30px;
    border:1px solid #ddd;
    padding:3px;
    background:url(../img/formfieldbg.gif) repeat-x;
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    border-radius: 5px;
    vertical-align:top;
    behavior: url(path/to/PIE.htc);}

注:このパスは、呼び出し元のCSSファイルではなく、表示されているHTMLファイルを基準にしています。

私はCakephpを使用していますが、パスに何を入力しても、PIE.htcファイルをどこに配置しても、機能させることはできません。 IE6で表示すると、FFのように入力に丸みを帯びた美しい角がありません。

12
julia

絶対パスを使用してみてください。

behavior: url(/path/to/PIE.htc);

先頭のスラッシュに注意してください。このように、現在のページが何であっても、.htcファイルへのパスは同じままです。

完全なURLも機能します:

behavior: url(//example.com/path/to/PIE.htc);

完全なURLを使用する場合は、 プロトコル相対URL を使用して、httpsに切り替えたときに安全でないコンテンツの警告が表示されないようにします。

IEで動作するためにPIEを使用する場合、多くの要素にposition:relativeまたはzoom:1が必要です。必ず 既知の問題 ページを確認し、機能するまで遊んでください。 。

14
Wesley Murch

私はCodeIgniterをmod_rewriteで使用していました。セプタグラムの答えに基づいて、私は以下を機能させました

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]

#if the url contains PIE.php redirect to the folder containing PIE.php
RewriteCond %{REQUEST_URI} PIE.php$
RewriteRule ^.*$ css3pie/PIE.php [NC,L]

#else just redirect to index
RewriteRule ^.*$ index.php [NC,L]

これが誰かを助けることを願っています

1
r8n5n

Pie.phpファイルを指定する必要があります。その内容は以下のとおりです。

<?php
/*
This file is a wrapper, for use in PHP environments, which serves PIE.htc using the
correct content-type, so that IE will recognize it as a behavior.  Simply specify the
behavior property to fetch this .php file instead of the .htc directly:

.myElement {
    [ ...css3 properties... ]
    behavior: url(PIE.php);
}

This is only necessary when the web server is not configured to serve .htc files with
the text/x-component content-type, and cannot easily be configured to do so (as is the
case with some shared hosting providers).
*/

header( 'Content-type: text/x-component' );
include( 'PIE.htc' );
?>

これで問題は解決するはずです。

1
defau1t

mod_rewriteを使用している場合は、次の小さなハックが適している可能性があります。

RewriteRule /PIE.htc$ PIE.htc [L]

これを.htaccessに追加して、出来上がり!これで、PIE.htcがすべてのフォルダに魔法のように存在します:)

0
Septagram