Chrome 133 带来了多项 CSS 增强功能,旨在提升网页开发的灵活性和控制力。关键更新包括高级 attr() 函数,支持更多数据类型;CSS 滚动状态容器查询,允许根据滚动状态调整样式;以及更精细的文本垂直对齐控制。此外,还新增了 Animation.overallProgress、Node.prototype.moveBefore、FileSystemObserver 接口和 PublicKeyCredential getClientCapabilities() 方法等,为开发者提供了更多便利。
🎨 **CSS 高级 attr() 函数**: 扩展了现有的 attr() 函数,允许在所有 CSS 属性中使用除 <string> 之外的类型,例如 <color>。这使得开发者可以更灵活地使用 HTML 属性值来控制样式,并支持解析失败时的回退值。
🔄 **CSS 滚动状态容器查询**: 引入了根据容器的滚动状态(如 stuck 和 snapped)设置容器后代样式的功能。通过 `container-type: scroll-state` 属性,开发者可以根据滚动位置动态调整页面元素的样式,创建更具交互性和响应性的用户界面。
📐 **CSS text-box、text-box-trim 以及 text-box-edge 属性**: 提供了对文本垂直对齐方式更精细的控制。这些属性允许开发者精确控制文本框的裁剪边缘和文本的垂直间距,从而更好地控制文本在页面中的呈现效果。
⏱️ **Animation.overallProgress**: 提供了一种便捷且一致的方式,表示动画在其迭代过程中的进度,不受时间线类型的影响。 开发者可以更容易地跟踪和控制动画的进度。
📁 **其他更新**: 包括 Node.prototype.moveBefore 方法用于在 DOM 树中移动元素,FileSystemObserver 接口用于通知文件系统的更改,以及 PublicKeyCredential getClientCapabilities() 方法用于确定用户客户端支持的 WebAuthn 功能。
原创 Google 2025-03-21 17:31 北京
Chrome 133 带来了多项更新,包括 CSS 高级 attr() 函数、CSS 滚动状态容器查询以及更精细的文本垂直对齐控制,提升了网页开发的灵活性和控制力。

CSS 高级 attr() 函数允许使用除 <string> 之外的类型,并可在所有 CSS 属性中使用。CSS 滚动状态容器查询允许您根据容器的滚动状态,使用容器查询来设置容器后代的样式。CSS text-box、text-box-trim 以及 text-box-edge 可用于更精细地控制文本的垂直对齐方式。
该功能在现有的 attr() 函数基础上,增加了 CSS 级别 5 中指定的功能。这允许除了 <string> 之外的类型,也能在所有 CSS 属性中使用 (同时保留对伪元素内容的原有支持)。在以下示例中,div 的 color 属性值使用了 data-color 属性的值。该属性值通过 attr() 和 type() 函数解析为 <color>。解析失败的回退值设置为 red。<div data-foo="blue">test</div>
div {
color: attr(data-foo type(<color>), red);
}
使用容器查询,可以根据容器的滚动状态为容器后代设置样式。查询容器可以是滚动容器,也可以是受滚动容器的滚动位置影响的元素。可查询的状态如下:stuck:粘性定位容器粘附在滚动框的某个边缘上。snapped:滚动贴靠对齐的容器,目前处于水平或垂直贴靠状态。scrollable:滚动容器是否可以按查询方向滚动。
新的容器类型:scroll-state 允许查询容器。例如:.stuck-top {
container-type: scroll-state;
position: sticky;
top: 0px;
> nav {
@container scroll-state(stuck: top) {
background: Highlight;
color: HighlightText;
}
}
}
CSS text-box、text-box-trim 以及 text-box-edge

text-box-trim 属性用于指定文本框需要裁剪的边缘 (上方或下方),text-box-edge 属性用于指定如何进行边缘裁剪。h1 {
text-box: trim-both cap alphabetic;
text-box: trim-both ex alphabetic;
}
Animation.overallProgress 为您提供一种便捷且一致的方式,用以表示动画在其迭代过程中的进度,且不受时间线类型的影响。
Node.prototype.moveBefore 允许您在 DOM 树中移动元素,而无需重置元素的状态。
FileSystemObserver 接口会向网站通知文件系统的更改。
PublicKeyCredential getClientCapabilities() 方法让您可以确定用户的客户端支持哪些 WebAuthn 功能。
我们会及时为您更新有关 Chrome 的新动态!也欢迎您持续关注 "Android 开发者" 微信公众号,了解更多开发技术和产品更新等资讯动态!

阅读原文
跳转微信打开