2

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

换句话说:CSS 中的前缀会与无前缀脚本一起破坏或导致奇怪的功能吗?

4

2 回答 2

3

-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 属性,无论您使用哪种浏览器。

于 2013-01-14T03:24:41.890 回答
0

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

由于许多规范已经标准化,某些属性的前缀要求不再需要,并且自许多版本以来就已经存在。示例:边界半径

你可以看看这里,看看哪些属性仍然需要前缀。

使用 CSS 时不会有任何效果,某些元素带有前缀,而其他元素则没有前缀。

于 2013-01-14T03:19:38.067 回答