Firefox 89 看起来很不错

在经历了一年活动减少的低迷期后,我们终于看到 Firefox 89焕然一新,它带来了一个简洁、更具极简主义风格的界面。

除了全新的外观,我们还获得了许多优秀的样式功能,包括用于媒体查询的force-colors 功能以及对字体显示的更好控制。备受期待的顶级 await JavaScript 模块关键字现已启用,以及PerformanceEventTiming 接口,这是对性能 API 套件的又一补充:89 确实一直在努力!

这篇博文仅提供了一些亮点;有关所有详细信息,请查看以下内容

forced-colors 媒体功能

forced-colors CSS 媒体功能检测用户代理是否限制网页上使用的调色板。例如,Windows 具有高对比度模式。如果启用,使用forced-colors: active 在 CSS 媒体查询中将应用嵌套的样式。

在此示例中,我们有一个.button 类,它声明了一个box-shadow 属性,为使用该类的任何 HTML 元素提供一个不错的阴影效果。

如果forced-colors 模式处于活动状态,则此阴影将不会呈现,因此,我们声明一个边框以弥补阴影丢失。

.button {
  border: 0;
  padding: 10px;
  box-shadow: -2px -2px 5px gray, 2px 2px 5px gray;
}

@media (forced-colors: active) {
  .button {
    /* Use a border instead, since box-shadow is forced to 'none' in forced-colors mode */
    border: 2px ButtonText solid;
  }
}

更好地控制显示的字体

Firefox 89 带来了line-gap-overrideascent-overridedescent-override CSS 属性。这些属性允许开发人员更好地控制字体显示方式。以下片段展示了在使用本地备用字体时这些属性的实用性。

@font-face {
  font-family: web-font;
  src: url("<https://example.com/font.woff>");
}

@font-face {
  font-family: local-font;
  src: local(Local Font);
  ascent-override: 90%;
  descent-override: 110%;
  line-gap-override: 120%;
}

这些新属性有助于减少字体加载时的布局偏移,因为开发人员可以更好地将本地字体的细微差别与网络字体相匹配。它们与size-adjust 属性一起工作,该属性目前在Firefox 89 中的偏好设置后面。

顶级 await

如果你在过去几年中一直在编写 JavaScript,你很可能已经熟悉了async 函数。现在await 关键字,通常限制在async 函数中使用,已经获得了独立性,可以单独使用。只要它停留在模块中即可。

简而言之,这意味着使用顶级 await 的子模块的 JavaScript 模块将在它们自身运行之前等待该子模块执行。同时不会阻止其他子模块加载。

这是一个使用>a href=”https://mdn.org.cn/en-US/docs/Web/API/Fetch_API”>Fetch API 并在export 语句中指定await 的非常小的模块示例。任何包含此模块的模块都将在运行任何代码之前等待 fetch 解析。

// fetch request
const colors = fetch('../data/colors.json')
  .then(response => response.json());

export default await colors;

PerformanceEventTiming

新外观不能不提性能。有大量的性能 API,这些 API 为开发人员提供了对其自身定制性能测试的粒度控制。现在 Firefox 89 中提供了PerformanceEventTiming 接口,它提供了各种事件的计时信息。它通过巧妙地提供有关用户触发事件何时开始以及何时结束的信息,为开发人员添加了另一个非常有用的功能。这是新版本中一个非常受欢迎的补充。

关于 Chris Mills

Chris Mills 是 Mozilla 的高级技术作家,他编写有关开放式 Web 应用程序、HTML/CSS/JavaScript、A11y、WebAssembly 等等的文档和演示。他喜欢使用 Web 技术进行捣鼓,并在会议和大学偶尔发表技术演讲。他曾为 Opera 和 W3C 工作,喜欢演奏重金属鼓和喝好啤酒。他与他的妻子和三个美丽的孩子住在英国曼彻斯特附近。

Chris Mills 的更多文章…