2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

谷歌的“Web UI 新功能”演讲:更少的自定义组件 JavaScript,更多的 Web 标准

  • 2025-06-10
    北京
  • 本文字数:1373 字

    阅读完需:约 5 分钟

大小:533.50K时长:03:02
谷歌的“Web UI新功能”演讲:更少的自定义组件JavaScript,更多的Web标准

Una Kravets最近在一次演讲中介绍了Chrome团队支持的Web UI的最新发展。一些目前需要大量 JavaScript 的常见 UI 模式可能,很快就会以声明式的方式实现,使用 HTML 和 CSS 的新特性,使用更少的自定义 JavaScript,并内置无障碍功能。

 

演讲重点介绍了三种特别棘手的 UI 模式:可定制的选择菜单、轮播图和悬停卡片。所有这三种 UI 模式在设计系统中都很常见,需要许多 JavaScript 代码来实现自定义样式、呈现、布局、交互或无障碍模式。随着浏览器供应商发展网络标准,将这些模式从用户层纳入到了浏览器本身,开发人员在未来可能需要做的工作更少了,只需依赖平台。更少的自定义 JavaScript 也有利于用户提高性能。提议的声明式 API 已经包含在至少一个稳定的浏览器引擎中了。

 

首先讨论的模式是可定制的选择菜单。原生 <select> 元素的内部结构历来很难在不同浏览器中一致地进行样式定制

 

开发人员在尝试使用浏览器内置表单控件( <select> 和各种 <input> 类型)时,一个常见的挫折是他们无法自定义这些控件的外观以适应他们网站的设计或用户体验。在一项关于表单控件和组件的Web开发人员调查中,开发人员重写这些控件版本的主要原因是无法充分自定义原生控件的外观。

 

可定制选择菜单的构建块是Popover API锚点定位

 

Popover API 处理浮动选项列表,确保它出现在其他 UI 元素之上,易于关闭,并管理焦点。Popover 已达到基线状态,现在在所有浏览器中都可用

 

命令调用者Commandcommandfor 属性)提供了一个类似于 popovertarget 的声明式 HTML 解决方案,用于将按钮点击连接到操作(例如,打开对话框),减少了样板 JavaScript 的需求。

 

锚点定位(Anchor Positioning)是一个 CSS API,允许开发人员将元素相对于其他元素(称为锚点)进行定位。这个 API 简化了许多界面特性(如菜单和子菜单、工具提示、选择、标签、卡片、设置对话框等)的复杂布局需求。锚点定位是Interop 2025的一部分,这意味着它将在今年年底出现在所有浏览器中。

 

改进的 select 元素结构展示了两个部分,一个按钮和一个锚定在该按钮上的弹窗,它们都有相应的选择器用于定位和设置样式:



可以通过选择器 ::picker(select) 为弹出窗口应用样式。一个自定义样式的例子如下所示:

 

/*进入自定义模式*/select,::picker(select) {  appearance: base-select;}

/*设置按钮的样式*/::select-fallback-button { background: gold; font-family: fantasy; font-size: 1.2rem;}

/*设置下拉菜单中选择器的样式*/::picker(select) { border-radius: 1rem;}

/*设置选项的样式*/option { font-family: monospace; padding: 0.5rem 1rem 0.5rem 0; font-size: 1.2rem;}

/*下拉列表中选中项的样式*/option:checked { background: powderblue;}

/*设置鼠标悬停或焦点时的选项样式*/option:hover,option:focus-visible { background-color: pink;}

/*设置当前选项指示符的样式*/option::before { content: ''; font-size: 80%; margin: 0.5rem;}

/*类推*/body { padding: 2rem;}
复制代码

 

鼓励开发人员查看完整的演讲以获取更多的技术细节、演示和解释。这次演讲还解释了CSS Overflow 5规范中的新特性,即滚动按钮和滚动标记,是如何在纯CSS中实现滚动驱动动画(例如轮播图)的。

 

原文链接:

https://www.infoq.com/news/2025/06/new-web-ui-standard-2025/

2025-06-10 16:004804

评论

发布
暂无评论

解锁全球潜力:IT外包解决跨国企业海外分支的IT需求

Ogcloud

外包 IT 外包公司 外包项目 IT 运维

用“开源”的方式讲开源的合规,合规“诊所”,等你来问!

开放原子开源基金会

Java 开源 程序员 开发者 算法

软件测试/人工智能|Python逻辑运算符如何灵活使用

霍格沃兹测试开发学社

PAM助力政府信息安全建设

尚思卓越

信息安全 数据安全 特权账号管理

构建第一个事件驱动型 Serverless 应用

亚马逊云科技 (Amazon Web Services)

Serverless S3 Amazon Lambda Amazon DynamoDB Amazon Cognito

MySQL 8.0 索引跳跃扫描

红袖添香

InnoDB存储引擎 数据库索引 MySQL 8.0 索引跳跃

什么?你还不会 OpenTiny 跨框架组件库适配微前端?

OpenTiny社区

开源 前端 微前端 组件库

诚邀报名|黄向东邀您共话开源工业物联网大数据

开放原子开源基金会

Java 开源 程序员 开发者 算法

大模型数据集:构建、挑战与未来发展

数据堂

软件测试/人工智能|一篇文章教你把Python关系运算符玩出花样

霍格沃兹测试开发学社

优化 uniapp 发行操作:一键打包、混淆代码

稳了,终于可以通过外网访问 Sealos 中的数据库了!

硅基新手村

数据库 云原生 Sealos 云操作系统

inBuilder低代码平台新特性推荐-第十四期

inBuilder低代码平台

低代码

伊克罗德信息的强大合作伙伴—Palo Alto Networks 更新 Prisma Cloud,增强云原生代码保护能力!

伊克罗德信息科技

云原生 网络安全 palo alto

IT外包的三种模式

Ogcloud

外包 IT 外包公司 外包项目 IT 运维

异常追踪与 JIRA 实现双向联动

观测云

Jira 异常追踪

软件测试/人工智能|Python赋值运算符如何灵活使用

霍格沃兹测试开发学社

游戏出海“变局”,中东非正成为下一块热土?

最新动态

Quartz核心原理之架构及基本元素介绍

不在线第一只蜗牛

架构 前端 quartz 系统搭建

如何在组织中有效地使用低代码工具?

互联网工科生

企业 低代码平台 企业管理软件

企业降本增效,从招聘“卷”起?

用友BIP

智能招聘

2023-12-06:用go语言,给你一个由 n 个数对组成的数对数组 pairs, 其中 pairs[i] = [lefti, righti] 且 lefti < righti 。 现在,我们定义一

福大大架构师每日一题

福大大架构师每日一题

AI文生视频或将为出海营销打开竞争新维度

新消费日报

谷歌的“Web UI新功能”演讲:更少的自定义组件JavaScript,更多的Web标准_软件工程_Bruno Couriol_InfoQ精选文章