css3pie在幕后发生了什么,使得IE可以使用css3功能?

最佳答案

CSS3Pie website有很多细节,但我会尝试解释一下。

Internet Explorer支持一种称为CSS行为的功能。这是特定于IE的功能,可让您指定触发CSS事件时要运行的Javascript功能。

为此,它使用带有.HTC扩展名的文件,该文件基本上是带有自定义XML代码轻包装的Javascript代码。由于Behaviors是一种特定于IE的功能,因此并未得到太多使用,除了少数与CSS3Pie类似的黑客异常(exception),该黑客旨在解决浏览器的某些缺点。

对于CSS3Pie,它实现了IE中缺少的一些功能。这些是边界半径,框阴影和线性渐变。

所有这些事情都可以在IE(甚至旧版本)中完成,但可以采用非标准方式。例如,IE支持称为VML的 vector 图形语言(同样,这是IE特定的)。 VML允许您使用Javascript绘制图形,并且它包含创建带有圆角,渐变填充和阴影的框的功能。

CSS3Pie结合了这些特定于IE的功能。作为CSS行为,当使用特定的CSS代码时,它将触发javascript代码。此javascript在包含VML的页面中创建了额外的元素,然后对其进行了样式设置,以匹配CSS类适用的元素。然后修改main元素以删除大多数相关样式,以便可以看到其后面的VML元素的样式。

归根结底,这是一个hack。它实际上并未向IE添加新功能;它只是使现有的IE功能以稍微标准的方式工作。

如果您想更深入地研究,CSS3Pie是开源的,因此您可以对其进行研究。但是,它是相当复杂的代码,因此您可能会发现查看其他可用的(更简单的)HTC文件更加容易。

在CSS3Pie之前,已经有一个available from HTMlRemix.com提供圆角,并且以与CSS3Pie非常相似的方式工作。 CSS3Pie是更好的软件,但是您可能会发现HTMLRemix代码更容易理解。

您可能还需要研究其他一些内容:

  • Whatever:Hover修复了IE6,以便CSS:hover功能可用于所有HTML元素,而不仅仅是<a>标记。
  • IE PNG Fix使IE的较早版本与具有透明性的PNG图形更好地配合使用。

  • 希望能回答您的问题。

    关于internet-explorer - css3pie如何工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4000034/

    10-11 13:56