我将重新构建一个网站,并将使用-prefix-free脚本来消除CSS中的前缀。但是,我不会编辑一些CSS。这个CSS确实包含一些前缀。如果我将这些前缀留在CSS中,-prefix-free仍然可以正常工作,还是有理由我应该浏览CSS文件并删除所有前缀?
换句话说:CSS中的前缀是否会破坏或导致与-prefix-free脚本一起出现奇怪的功能?
答案 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时会有效,某些元素有前缀,而其他元素没有前缀。