Css3pie完全在localhost上工作,但只在远程服务器上部分工作

时间:2012-03-29 04:18:21

标签: asp.net html css css3 css3pie

我有一个在线网站,它是一个用ASP.NET编写的网络应用程序。当我复制网站的HTML代码时,将其放入html文件并在localhost(Apache服务器)上运行,一切正常,CSS3PIE正常工作。

问题是在服务器上它的工作方式不同。首先,它甚至根本不起作用,并且在css中附加了pie.htc行为的元素完全消失,或者说让它们变得透明。

我偶然发现一条建议,说position: relative;对给定的元素将解决问题。它有点做,但它根本不令人满意。背景仍然是透明的,部分元素消失了,并且在悬停时它使其他元素以几个像素跳到一侧。阴影工作,圆角也有点工作,但没有渐变。

1 个答案:

答案 0 :(得分:2)

有几种可能性:

1) .htc文件未使用正确的mime-type提供。来自CSS3 PIE Known Issues

  

IE要求使用内容类型提供HTC行为   标题为“text / x-component”,否则只会忽略   行为。许多Web服务器都预先配置为正确提供服务   内容类型,但其他不是。

     

如果您没有应用PIE行为问题,请检查   您的服务器配置,如果可能的话,更新它以使用正确的   内容类型。对于Apache,您可以在.htaccess文件中执行此操作:

AddType text/x-component .htc

运行IIS的服务器上存在问题吗?如果是这样,什么版本的IIS? IIS 5 or higher should have the mime-type for .htc configured correctly

2)也许这是一个路径问题,再次来自CSS3 PIE known issues

  

相对路径

     

CSS中的相对路径有两个主要问题:   行为网址

     

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

     
    

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

  
     PIE解释的CSS属性中的

URL

     

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

     

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