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?的主要内容,如果未能解决你的问题,请参考以下文章