我将要改造一个网站,并将使用-prefix-free脚本来消除我在 CSS 中的前缀。但是,有些 CSS 我不会编辑。这个 CSS 确实包含一些前缀。如果我将这些前缀留在 CSS 中,-prefix-free 仍然可以正常工作,还是有理由我应该检查 CSS 文件并消除所有前缀?
换句话说:CSS 中的前缀会与无前缀脚本一起破坏或导致奇怪的功能吗?
我将要改造一个网站,并将使用-prefix-free脚本来消除我在 CSS 中的前缀。但是,有些 CSS 我不会编辑。这个 CSS 确实包含一些前缀。如果我将这些前缀留在 CSS 中,-prefix-free 仍然可以正常工作,还是有理由我应该检查 CSS 文件并消除所有前缀?
换句话说:CSS 中的前缀会与无前缀脚本一起破坏或导致奇怪的功能吗?
-prefix-free 将保留样式表中已添加前缀的所有属性。事实上,如果您为其指定至少一个单独的前缀,它不会为同一属性或规则添加其他前缀。
例如,如果您有
-webkit-border-radius: 10px;
然后 -prefix-free不会-moz-border-radius
为 4.0 之前的 Firefox 版本添加,也不会border-radius
为任何浏览器添加无前缀。WebKit 浏览器将照常应用边框半径,因为它们理解-webkit-border-radius
.
如果您希望 -prefix-free 为其他浏览器添加前缀,则需要将其更改为
border-radius: 10px;
因此,这取决于您希望它为哪些属性应用所有必要的前缀。如果您希望 -prefix-free 在任何必要的地方应用前缀,您需要检查您的样式表并删除任何已经存在的前缀。
当然,请记住,您可能希望为某些属性保留硬编码的前缀,例如特定于 WebKit 的伪元素-webkit-appearance
和-webkit-text-size-adjust
. 同样,这取决于属性;您可能需要根据您的布局需求进行研究和决定。
该脚本的主页包含一个测试驱动器,您可以使用它来预览带前缀和不带前缀属性的结果。请记住,结果是针对您用于运行测试驱动器的浏览器量身定制的,因此如果您border-radius
在 Firefox 4 或更高版本中添加并运行它,您将不会看到任何更改。但是,如果您改为放置-webkit-border-radius
声明,您仍然会看到 -prefix-free 使其在预览窗格中保持不变,甚至无需添加 unprefixed 属性,无论您使用哪种浏览器。