css3pie:CSS 行为属性是不是允许相对 URL?

Posted

技术标签:

【中文标题】css3pie:CSS 行为属性是不是允许相对 URL?【英文标题】:css3pie: Does CSS behavioral property allow relative URLs?css3pie:CSS 行为属性是否允许相对 URL? 【发布时间】:2011-09-19 00:59:19 【问题描述】:

我有一个使用 CSS3PIE 行为脚本的 CSS 文件,因此 IE8 将支持我的文件,但是,我想知道是否有任何方法可以使行为 URL 相对于 CSS 文件而不是相对于 html 文件。有没有办法做到这一点?

【问题讨论】:

不,您也不能链接到行为跨域,因此也没有用于托管的谷歌代码。是的,这有点令人沮丧。 感谢石灰,是的,这很令人沮丧 CSS3 非常酷,但很难通过与所有浏览器竞争来实现,这是我能想到的唯一解决方案。幸运的是,至少现在只有一个 HTML 文件需要该文件。 我迫不及待地想等到 google frame 像 flash 一样成为插件。 【参考方案1】:

您可以使用带有前斜杠的路径(从域的根目录开始),类似于:

behavior: url(/css/PIE.htc);

应该可以按预期工作。

或者,您可以使用 PIE.js 版本:http://css3pie.com/documentation/pie-js/

JS 版本的优点 - 通过 a 引用 PIE.js 文件 相对路径更简单..

但是,PIE.js 有很多的缺点。小心行事。

【讨论】:

【参考方案2】:

另一种方法是使用服务器端技术为您找到根。我使用这种技术是因为我倾向于在虚拟目录中开发站点,而不是在本地域根目录中。

主要缺点是这需要在代码中完成,而不是在不同的 CSS 文件中。

.NET 示例:

<!--[if lt IE 7]>
    <style>
        .foo
        
            behavior: url(<%= ResolveUrl("~/") %>/js/libs/PIE.htc)
        
    </style>
<![endif]-->

【讨论】:

【参考方案3】:

请记住,如果您的网站包含 HTTPS 和非 HTTPS 内容,您可能需要使用双斜杠来使其与协议无关:http://paulirish.com/2010/the-protocol-relative-url/

这是 IE8 抓取文件的两个版本的一个缺点。

【讨论】:

以上是关于css3pie:CSS 行为属性是不是允许相对 URL?的主要内容,如果未能解决你的问题,请参考以下文章

无法让 CSS3Pie 工作

CSS3PIE - IE6 - IE8 有多轻松

是否会为其他浏览器加载 CSS3PIE .htc 文件,即使他们不需要?

预测在高负载项目上安装 LESS、CSS3PIE 的后果

CSS3Pie 导致启动错误

为啥 CSS3 PIE 和其他类似的脚本不是到处都在使用?