CSS中的-prefix-free脚本和前缀

时间:2013-01-14 03:09:24

标签: javascript css vendor-prefix

我将重新构建一个网站,并将使用-prefix-free脚本来消除CSS中的前缀。但是,我不会编辑一些CSS。这个CSS确实包含一些前缀。如果我将这些前缀留在CSS中,-prefix-free仍然可以正常工作,还是有理由我应该浏览CSS文件并删除所有前缀?

换句话说:CSS中的前缀是否会破坏或导致与-prefix-free脚本一起出现奇怪的功能?

2 个答案:

答案 0 :(得分:3)

-prefix-free将仅在样式表中保留任何已添加前缀的属性。实际上,如果为其指定至少一个单独的前缀,它将为同一属性或规则添加其他前缀。

例如,如果你有

-webkit-border-radius: 10px;

然后-prefix-free将为早于4.0的Firefox版本添加-moz-border-radius,也不会为任何浏览器添加任何前缀border-radius。 WebKit浏览器将照常应用边框半径,因为它们理解-webkit-border-radius

如果您希望-prefix-free为其他浏览器添加前缀,则需要将其更改为

border-radius: 10px;

因此,它取决于您希望它应用所有必需前缀的属性。如果您希望-prefix-free在任何必要的地方应用前缀,您需要浏览样式表并删除已存在的前缀。

当然,请记住,您可能希望为某些属性保留硬编码前缀,例如特定于WebKit的伪元素-webkit-appearance-webkit-text-size-adjust。再次,这取决于财产;您可能需要根据您的布局需求进行研究和决定。

脚本的主页包含test drive,您可以使用它来预览前缀和未加前缀的属性的结果。请记住,结果是根据您用于运行测试驱动器的浏览器量身定制的,因此如果您添加border-radius并在Firefox 4或更高版本中运行它,您将看不到任何更改。但是,如果您发出-webkit-border-radius声明,您仍然会看到-prefix-free在预览窗格中保持不变,甚至无需添加未加前缀的属性,无论您使用何种浏览器。

答案 1 :(得分:0)

-prefixes仅用于支持浏览器中存在的功能,但尚未标准化,或尚未完成实施。

由于许多规范已经标准化,因此不再需要某些属性的前缀,并且自许多版本以来一直存在。例如:border-radius

您可以查看here,查看哪些属性仍需要前缀。

使用CSS时会有效,某些元素有前缀,而其他元素没有前缀。