我正在尝试使用PIE.htc,这是一个希望允许我在IE6-8中使用CSS3功能的脚本。我也在使用Cakephp(我正在成长为爱)
根据说明我只需将PIE.htc文件粘贴到我想要的任何位置,然后将behavior: url(path/to/PIE.htc);
添加到CSS中。所以我有:
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);}
它还说:注意:此路径与正在查看的HTML文件相关,而不是从中调用的CSS文件。
我正在使用Cakephp,无论我为路径放置什么,无论我在哪里放置PIE.htc文件,我都无法使其工作!当我在IE6中查看它时,我的输入仍然没有像在FF中那样可爱的圆角。
答案 0 :(得分:14)
尝试使用绝对路径:
behavior: url(/path/to/PIE.htc);
注意前锋斜线。这样,无论当前页面是什么,.htc
文件的路径都将保持不变。
完整的网址也可以使用:
behavior: url(//example.com/path/to/PIE.htc);
如果您使用完整网址,请使用protocol relative url,以便在切换到https时不会收到不安全的内容警告。
许多元素在使用PIE时需要position:relative
或zoom:1
才能在IE中运行,请务必检查known issues页面并进行操作,直到您开始工作为止。
答案 1 :(得分:1)
您需要指定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' );
?>
这应该可以解决问题。
答案 2 :(得分:1)
我正在使用CodeIgniter和 mod_rewrite 。根据Septagram的回答,我得到了以下工作
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]
希望这有助于某人
答案 3 :(得分:0)
如果你正好使用mod_rewrite
,那么下面的小黑客可能适合你:
RewriteRule /PIE.htc$ PIE.htc [L]
将此添加到.htaccess
并瞧!现在PIE.htc
神奇地存在于每个文件夹中:)