17

我有一个关于过渡的 CSS 供应商前缀的问题。

该来源声明“您需要使用所有常用前缀才能使其在所有浏览器中工作(-o-、-webkit-、-moz-、-ms-)”。

该页面仅显示-webkit--moz-前缀,并声称 IE 10+、FF 16+ 和 Opera 12.1+ 可以读取前缀免费版本。

在 Twitter Bootstrap 的代码中,除了不加前缀的版本之外,总是存在一个-webkit-,-moz--o-前缀的版本。

我应该使用什么前缀?

4

6 回答 6

30

http://caniuse.com/#search=transition说现代浏览器需要 -webkit- 和普通属性。

-webkit-transition: all .5s ease;
transition: all .5s ease;

但是如果你把它们都加起来也没问题,只要确保没有前缀的属性是最后一个。

编辑:正如下面评论中所说,如果您单击“所有版本”,您可以看到每个浏览器何时删除前缀。现在最好同时使用 -moz- 和 -o-。

2015 年 5 月编辑:我强烈建议使用Autoprefixer作为构建过程的步骤(如 Gulp/Grunt 任务)或作为代码编辑器的插件。它在 caniuse.com 浏览器支持统计信息上提供自动前缀。

编辑 2019:不需要前缀,Autoprefixer 的需要越来越少,未来很好:)

于 2013-01-15T00:13:11.843 回答
19

编辑:您不再需要任何前缀。

只需使用transition.


到目前为止,所有供应商前缀都应该用于 CSS3 过渡。例如,

-webkit-transition: all 500ms;
   -moz-transition: all 500ms;
     -o-transition: all 500ms;
        transition: all 500ms;
于 2013-01-15T00:09:31.843 回答
1

这取决于您要使用的 CSS 属性。Mozilla 在去除许多属性的前缀方面做得很好。但是你不能告诉所有属性现在都没有前缀。我听到 Chrome 团队的消息,他们希望让渐变没有前缀。我不了解 Opera,但 Internet Explorer 10 需要-ms许多 CSS3 属性的前缀。

我会说今天你应该只添加前缀。但未来不会是这样的!

于 2013-01-15T00:12:59.710 回答
0

帮自己一个忙,下载Prefix Free。这是一个很小的 ​​JavaScript,它可以让您使用几乎任何需要前缀的属性,而无需前缀(包括过渡、动画和媒体查询)。

编辑:所有这一切的唯一例外是 Opera 的媒体查询,其中像素比率(仅此而已)必须表示为分数而不是小数。

于 2013-01-15T00:10:20.943 回答
0

-webkit- only,当然还有不带前缀的版本。

所有其他浏览器要么使用无前缀属性(如 Firefox 或 Opera)移动,要么从未使用过它们(如 IE)

我建议定期查看 CanIUse.com 以获取最新信息。

http://caniuse.com/#feat=css-transitions

于 2013-01-15T00:14:37.317 回答
0

我将在此违背常规并建议一种不同的方法:如果您的网站设置了分析功能,请检查浏览器统计信息和版本,看看您的用户实际使用的是什么。

当然,您可以删除大多数前缀,但如果您的用户使用过时的浏览器(无论出于何种原因),他们将无法获得这些功能。

没有任意网站可以告诉所需的确切前缀,只有可以从自己的数据中找出该信息。

如果您没有数据,请添加所有前缀以支持尽可能多的人。然后在几个月内检查数据并在需要时进行重构。

于 2013-01-15T00:19:03.413 回答