为什么CSS3 PIE在CSS文件中使用绝对路径时不能在子页面上工作?

时间:2012-05-18 21:40:50

标签: html css css3pie

我有以下课程:

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

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您没有使用绝对路径,而是使用相对路径。要回答你的问题,我需要知道 - 你的根文件夹的位置 - 是你的css文件。

因为......如果它是,例如root / styles /或者其他什么,那么你的饼规则在/ csspie之前需要两个点'..'。

换句话说,而不是:

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

你需要:

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

但这只是猜测工作,我需要先知道你的css文件/文件夹的位置。

好的,请参阅此页:

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

  

行为网址

     

IE解释相对于源的行为属性的URL   HTML文档,而不是像其他人一样相对于CSS文件   CSS属性。这使得调用PIE行为不方便,   因为URL必须是:

     

来自域根目录的绝对 - 这使得CSS不容易移动   在目录之间 - 或者,相对于HTML文档 - 这使得   CSS不容易在不同的HTML文件之间重用。网址   PIE解释的CSS属性

     

PIE不解析CSS样式表(这样做是不可接受的   慢);它让IE处理解析,选择器查询,级联,   等等,然后简单地询问结果属性值。这个   意味着当PIE获得属性值时,它不知道   该价值来源的背景。

     

因此,对于包含URL值的属性(例如   border-image或-pie-background),PIE无法解析这些URL   相对于它们出现的CSS文件。它解决了它们   而不是相对于JavaScript执行上下文,这是   源HTML文档的位置。

干杯
ģ

更新:

确保你有条不紊地一个接一个地尝试所有这些:

  1. behavior:url(“../ css3pie / PIE.php”);
  2. behavior:url(“/../ css3pie / PIE.php”);
  3. 行为:网址(“http://trashtalk.dk/css3pie/PIE.php”);
  4. UHMMM ......你的CSS中的css3 pie规则在哪里?我知道,我看不到它 - 像 - 背景或其他什么。