Aurora 16 发布 - 去除前缀的时刻!

Web 开发者们,庆祝的时候到了!在即将发布的 Firefox 16 中(今天已进入 Aurora 阶段),一项重大改进是去除了多个稳定 CSS 特性的前缀。其他值得 Web 开发者关注的特性包括更多与 HTML5 相关的 API、Mac OS 上更好的可访问性以及对 Firefox 开发者工具的改进。

 

那么,哪些 CSS 特性去除了前缀呢?

规范 属性、函数表示法和 @ 规则 更多信息
CSS3 动画 animation, animation-name, animation-duration, animation-delay, animation-timing-function, animation-iteration-count, animation-direction, animation-play-state, animation-fill-mode, @keyframes 使用 CSS 动画
CSS3 过渡 transition, transition-property, transition-delay, transition-duration, transition-timing-function 使用 CSS 过渡
CSS3 变换 transform, transform-origin, transform-style, backface-visibility, perspective, perspective-origin 使用 CSS 变换
CSS3 图像值 linear-gradient(), radial-gradient(), repeating-linear-gradient(), repeating-linear-gradient() 使用 CSS 渐变
CSS3 值和单位 <a title="CSS calc() 函数" href="https://mdn.org.cn/en/CSS/calc">calc</a>()

注意渐变语法

虽然 CSS 动画、过渡和变换的语法最近没有变化,但 CSS 渐变语法却并非如此,它与大多数带前缀的实现相比有显著不同。

用于 线性渐变 的最终语法是 

<linear-gradient> = linear-gradient([ [ <angle> | to <side-or-corner> ] ,]? <color-stop>[, <color-stop>]+ )
<side-or-corner> = [left | right] || [top | bottom]

如果我们将它分解,它的结构是 

linear-gradient( <em>direction</em> , <em>color-stop</em> )

由于 color-stop 语法最近没有发生变化,因此 direction 参数是最新变化发生最多的部分。

direction 参数可以通过使用 CSS <angle> 定义,也可以使用 to 关键字后跟一个或两个描述侧面或角点的关键字定义。

这就是主要的变化!这个 to 关键字之前不存在,它颠倒了之前使用的方向:-prefix-linear-gradient( top left ) 变成了 linear-gradient( to bottom right )

此外,<angle> 也发生了变化:之前,0deg 指向右侧;现在,它与 CSS 规范中其他角度保持一致,指向顶部。像这样

0deg points to the top, 90deg to the right, 180deg to the bottom, and 270deg to the left

所以,您需要再次将 -prefix-linear-gradient(0deg) 更改为 linear-gradient(90deg)。如果未更改角度,渐变将以不同的方向显示,例如这样

水平渐变,左侧为蓝色,右侧为白色垂直渐变,顶部为蓝色,底部为白色

对径向渐变语法也进行了类似的更改,新增了 at 关键字。

更多 HTML5 和朋友的精美内容

去除成熟 CSS 特性的前缀并不是支持标准的唯一改进

  • IndexedDB 已达到候选推荐状态,也去除了前缀。这太棒了。
  • 对 HTML5 Microdata API 的支持已实现。
  • 对 HTML5 <strong><meter></strong> 元素的支持已实现。
  • 我们去除了 Battery API 的前缀。
  • 我们去除了 Vibration API 的前缀。
  • 我们通过添加对 dppx 单位的支持来改进媒体查询支持。
  • CSS 属性 heightwidth 现在可以进行动画。
  • CSS 动画可以“反转”:已添加 reversealternate-reverse 关键字。
  • 我们的 JavaScript 实现得到了改进,在 Harmony(可能是未来的 EcmaScript 6)中添加了几个新特性
    • 直接代理 的支持
    • Arrayspread 运算符的支持
    • Number 的改进,现在支持 toInteger()isInteger()isFinite()
  • Keyboard(仍带前缀为 mozKeyboard)的改进,现在支持 setSelectedOption()setValue()onfocuschange()

可访问性

在使 Firefox 更具可访问性方面迈出了一大步。对 Mac OSVoiceOver 的支持已实现。这是最后一个我们的可访问性特性严重落后的平台。这对所有在 Mac 上需要这些功能的人来说非常令人兴奋。 更多信息.

开发者工具

最后但并非最不重要的是,我们继续改进开发者工具!

现在您可以切换开发者工具栏:转到工具 > Web 开发者 > 开发者工具栏,或按 Shift-F2。工具栏本身看起来像这样

工具栏有一个命令行界面,以及右侧的按钮,可以快速访问有用的工具。命令行界面易于扩展,将来预计将添加更多命令。在其中键入 help 将显示支持的命令。

Web 控制台也得到了改进,现在显示了一个精美的错误计数。

最后,我们的 Scratchpad 获得了最近打开文件的列表。始终很方便。

其他值得注意的更改

  • 我们略微 更改 了我们的 UA 字符串,不显示版本控制系统的第三位数字。
  • 增量 GC 是我们改进垃圾收集器工作的重要组成部分,现在 默认启用
  • Opus 是一种针对实时通信的低延迟编解码器,现已 默认启用
  • 默认情况下,我们 不再接受 X.509 证书中的 MD5 哈希。
  • about:memory 现在显示 “每个标签”的内存使用情况
  • 我们 调整了上下文菜单,移除了“发送链接...”项目并将“停止”和“重新加载”项目合并在一起。

有关更多详细信息,请参见 发行说明面向开发者的 Firefox 16

结论

Firefox 16 正朝着成为 Web 开发者的强大版本迈进,无论是在对标准的支持方面,还是在工具的改进方面,都快速成熟。将来,Web 网站将更易于制作且功能更强大!

关于 Jean-Yves Perrier

Jean-Yves 是 Mozilla 开发者推广团队的项目经理。在此之前,他曾在 MDN 担任技术作家,专门负责 Web 平台技术(HTML、CSS、API),并且担任 MDN 内容主管多年。

Jean-Yves Perrier 的更多文章...


39 条评论

  1. Michael Beckwith

    一旦它们都可以合并到一个窗口中(如果正在开发中),我就会尝试用它来替代 Firebug。

    2012 年 7 月 20 日 下午 11:36

  2. WebUser

    有人知道 Firefox 开发者何时实现 a[download] 属性吗?
    我试图找到一种方法来命名由客户端 JS 代码生成的(blob)文件。
    Chromium 支持 a[download](HTML 5)和“filesystem:”(文件 API:写入器)。

    2012 年 7 月 21 日 下午 12:23

    1. Jean-Yves Perrier

      我在 Bugzilla 上没有找到 a[download] 的踪迹。也许您应该提交一个错误请求,并附上您的用例。

      2012 年 7 月 21 日 下午 12:41

      1. WebUser

        我找到了“错误 676619 - 实现提议的 download 属性”。感谢您的建议。

        2012 年 7 月 21 日 下午 1:36

        1. Jean-Yves Perrier

          谢谢您,您的 Bugzilla 搜索技能比我强!

          2012 年 7 月 21 日 下午 13:38

  3. pd

    Ctrl+Shift+V 与 AdBlock Plus 冲突

    2012 年 7 月 22 日 上午 00:58

    1. Jean-Yves Perrier

      您是否提交了错误报告?

      2012 年 7 月 22 日 上午 01:02

    2. jon

      顺便说一下,Ctrl+Shift+V 也被“无格式粘贴”(错误 410986)使用。

      我没有提交错误报告,希望对这些原生开发者工具感兴趣的人可以做这件事。

      2012 年 7 月 22 日 下午 15:20

    3. Thomas S.

      文本错误,在发布的浏览器中快捷键是“Shift-F2”。

      2012 年 7 月 23 日 上午 07:30

      1. Jean-Yves Perrier

        你完全正确。我修改了文本。

        2012 年 7 月 23 日 上午 07:35

  4. Jason Ng

    如果 radial-gradient 未加前缀,那么使用新的语法和定义的圆形/椭圆大小的情况如何?

    2012 年 7 月 23 日 上午 09:40

    1. Jean-Yves Perrier

      这是最新语法,使用未加前缀的 radial-gradient:使用新的语法,‘at’ 关键字和定义的圆形或椭圆大小。(也支持两个值的语法).

      2012 年 7 月 23 日 上午 09:53

  5. Binyamin

    去除 Web 前缀的好消息。
    不幸的是,Firefox 16 发布的未加前缀的“repeating-linear-gradient”存在未解决的错误 https://bugzilla.mozilla.org/show_bug.cgi?id=644444 会给 Firefox 带来糟糕的体验和大量的错误。

    2012 年 7 月 23 日 下午 13:08

    1. Jean-Yves Perrier

      该错误中的两个用例(包括您的双重用例)在我的 Nightly 上运行良好:没有崩溃,没有挂起,并且渐变显示正常。(我已经去除了前缀)。您也可以在本地测试吗?

      2012 年 7 月 23 日 下午 13:52

      1. Binyamin

        尝试在最新的 Nightly 上测试 http://laukstein.com。Firefox 会在未加前缀的“repeating-linear-gradient”上因“background-size”而挂起。

        2012 年 7 月 23 日 下午 14:03

        1. Jean-Yves Perrier

          有点慢,但没有挂起。整个页面在 4-5 秒后显示。

          2012 年 7 月 23 日 下午 14:23

          1. Binyamin

            在最新的 Firefox Nightly 上,它在 Win7 64 位和 Win8 64 位上挂起了几分钟。如果没有“repeating-linear-gradient”和“background-size”,它将立即响应。测试用例请查看 http://jsfiddle.net/laukstein/zuCbG/show/ (http://jsfiddle.net/laukstein/zuCbG/),打开后尝试点击 Firefox 屏幕上的任何地方。

            2012 年 7 月 23 日 下午 22:52

          2. Jean-Yves Perrier

            是的,你说得对;我没有在 Windows 上测试。看起来是 https://bugzilla.mozilla.org/show_bug.cgi?id=768775,它正在积极开发中,应该在发布之前完成。它是 Windows 特定的。

            2012 年 7 月 23 日 下午 22:55

          3. MonkeyHite

            我测试了页面 http://laukstein.com,它可能不会让 Firefox 挂起,但它确实让 Firefox 不可用……页面用了 2 分钟 12 秒才出现,然后我无法立即切换到其他标签……任何来自鼠标或键盘的命令都需要 30 秒或更长时间才能生效。这是一个错误。我使用的是 Firefox 16.01。

            2012 年 10 月 12 日 上午 10:29

          4. Jean-Yves Perrier

            这是 这个错误。(这个网站在之前这条消息链中被报告过)

            2012 年 10 月 12 日 上午 10:35

          5. Binyamin

            Mozilla 发布了稳定的 Firefox 16 http://www.mozilla.org/en-US/firefox/16.0.1/releasenotes/,但没有修复与“repeating-linear-gradient”和“background-size”相关的已报告错误,这些错误导致 Firefox 出现糟糕的用户体验和大量网站崩溃。

            2012 年 10 月 13 日 下午 14:20

          6. Binyamin

            为了让 Firefox 16 能够响应 laukstein.com,我只是去除了未加前缀的属性“repeating-linear-gradient”并切换到 SVG,因为 Firefox 存在相关错误 https://plus.google.com/u/0/111710573164225089703/posts/57wiL9vNMBF

            当然这不是一个解决方案,Mozilla 在没有处理能力的情况下发布了未加前缀的属性。

            2012 年 10 月 13 日 下午 15:14

  6. Binyamin

    @Jean-Yves Perrier,尝试在最新的 Nightly 上测试 http://laukstein.com。Firefox 会在未加前缀的“repeating-linear-gradient”上因“background-size”而挂起。

    2012 年 7 月 23 日 下午 14:03

  7. Jason Ng

    对于颜色停止,例如 (red, transparent, green),颜色预乘怎么样?

    2012 年 7 月 23 日 下午 15:28

    1. Jean-Yves Perrier

      您可以在该错误中看到它的进展:https://bugzilla.mozilla.org/show_bug.cgi?id=591600

      2012 年 7 月 23 日 下午 15:39

  8. Ishan Oshadi Jayawardene

    令人鼓舞的变化。非常喜欢新的快速发布周期。

    2012 年 7 月 24 日 上午 06:40

  9. F

    有人曾经提到开发者工具可以扩展到第三方开发者。如果是这样,是否有这方面的文档?

    2012 年 7 月 24 日 上午 10:38

    1. Janet Swisher

      源代码编辑器 API 的文档正在草拟中:https://mdn.org.cn/en/JavaScript_code_modules/source-editor.jsm

      2012 年 7 月 24 日 上午 10:47

  10. kizi

    太棒了!这与 IonMonkey 有关吗?

    2012 年 7 月 26 日 下午 15:17

    1. Jean-Yves Perrier

      没有,但 IonMonkey 的工作仍在继续。

      2012 年 7 月 26 日 下午 21:05

  11. Peter

    是否有可能“linear-gradient(to 90deg)”应该只是 90deg,没有“to”。因为否则它在我的 Firefox(Nightly)中无法工作。

    2012 年 7 月 29 日 上午 01:16

    1. Jean-Yves Perrier

      是的。这是一个错别字,‘to’ 关键字只在关键字中使用,而不是在绝对值中使用。

      2012 年 7 月 29 日 上午 01:17

  12. CiNiTriQs

    一致性正在接近!现在所有其他浏览器都必须跟上;) 我估计至少还需要两年时间。

    2012 年 7 月 29 日 上午 03:11

  13. Pikadude No. 1

    我刚刚测试了 -moz-transition - 高度和宽度至少从 Firefox 14 开始就可以动画化。

    2012 年 8 月 14 日 上午 00:16

    1. Jean-Yves Perrier

      你说得对:这项工作开始于很久以前。但直到 Fx 16,才有可能在任何元素上对它们进行动画化。最后添加的是 SVG 元素。

      2012 年 8 月 14 日 上午 00:26

  14. Pray For Rain

    -webkit-transform:rotate(random(30,60)deg); 怎么样?我还在想是代码写错了还是我的浏览器不支持它。

    2012 年 9 月 28 日 下午 23:16

    1. Jean-Yves Perrier

      首先,这是使用 -webkit 前缀,只在 Webkit 浏览器中有效。其次,CSS 中不存在 random(30,60)。

      2012 年 9 月 29 日 上午 00:03

  15. alex

    Firefox 16 破坏了 transform:rotate(xdeg),因此破坏了我最近制作的 3 个网站。“开发者的大版本”… 无所谓。
    听说过“向后兼容性”吗。
    彻底毁了我这个月……

    2012 年 11 月 20 日 下午 18:28

    1. Jean-Yves Perrier

      除了去除前缀(仍然支持带前缀的版本)外,只有错误修复应该改变 rotate() 的行为。如果您发现了更多更改,您应该填写一个错误报告,其中包含用例,以便对其进行调查。

      2012 年 11 月 21 日 上午 00:29

这篇文章的评论已关闭。