在本指南中,我们将介绍如何使用标准浏览器 API 和 Workbox 库,了解在页面和 Service Worker 之间实现此类通信的不同方法。
在本文中,我们介绍了页面与 Service Worker 之间的单向通信的一种常见用例:命令式缓存。我们讨论的示例仅用于演示一种使用此模式的方法,相同的方法也适用于其他用例,例如,按需缓存热门文章以供离线阅读、添加书签,等等。
解决方案应通过将内容保持在中心位置,同时被高度挤压、宽度挤压、元素复制、内容编辑和布局方向为各种语言模式和方向来展示其弹性。值得信赖的弹性居中,也是安全的居中。
大多数情况下,出于开发目的,http://localhost 的行为类似于 HTTPS。不过,在一些特殊情况(例如自定义主机名或跨浏览器使用安全 Cookie)下,您需要明确设置开发网站的行为方式,使其类似于 HTTPS,以准确表示网站在生产环境中的运行。
易读性和较短的选择器便利性只是 :is() 和 :where() 为 CSS 带来的价值的一部分。在这篇博文中,您将了解这两个功能伪选择器的语法和值。
我们将使用自定义属性和 calc() 构建一个易于访问的颜色系统,制作出可适应用户偏好的网页,同时保持极简的创作体验。我们从基本品牌颜色入手,并根据该颜色构建一个变体系统:2 种文本颜色、4 种 Surface 颜色和与之匹配的阴影。
现在,在加载网页字体时,您可以调整其缩放比例,将文档字体大小标准化,并在切换字体时防止布局偏移
CSS 注册的自定义属性是一项非常强大的功能,它通过为 CSS 变量提供含义和上下文来扩展 CSS 语言。现在,随着 @property 进入基准,此 CSS 超能力的实力正在不断提升。
此演示版使用 checkbox 来实现其大部分功能,优势在于无需使用 CSS 或 JavaScript 即可完全正常运行且可访问。加载 CSS 支持从右到左的语言、垂直度、动画等。加载 JavaScript 会使开关变得可拖动且有形
CSS 界面规范中的 CSS accent-color 支持使用一行 CSS 为元素着色,提供一种将品牌融入元素的方法,让您无需进行自定义。
如果出于任何原因,您无法避免对预加载扫描器加速加载性能的能力产生负面影响的模式,请考虑使用 rel=preload 资源提示。
translate、rotate 和 scale 的动画在合成器上运行的方式与 transform 的动画相同,因此它们有利于提升动画性能,与 transform 相同
在本文中,我们将深入介绍网络上可供我们使用的不同 HTML 列表类型以及何时使用这些列表类型,包括一些您可能不熟悉的属性。我们还将学习使用 CSS 设置样式的一些实用且富有创意的方式。
您可以通过以下几种方法设置元素边框:border、outline 和 box-shadow,每种方法都有自己的优缺点,尤其是在为边框添加动画效果时。不使用适当 CSS border 的主要原因是出于动画目的。
说到 CSS,有时边框 border 并不是真正的边框 border。
在本集中,我们将介绍以下两者之间的区别:border,outline,box-shadow。我们还将讨论在什么情况下可以使用其中一种而不是另一种。
快速 CSS 技巧!一个动画加载 loading,请注意使用 steps(var(–count)) 以实现正确的效果 ✨
随着 Chrome 浏览器 125 中引入 CSS 锚点位置 API,将一个元素相对于另一个元素进行定位变得前所未有的简单。这是管理弹出窗口和工具提示等复杂定位用例的绝佳方法。
Async Clipboard API 的 Clipboard 接口提供对系统剪贴板内容的读写权限。这允许 Web 应用实现剪切、复制和粘贴功能。
HTMLVideoElement.requestVideoFrameCallback() 方法允许网页创作者注册一个回调,该回调在向合成器发送新视频帧时在渲染步骤中运行。这样一来,开发者就可以对视频执行高效的每视频帧操作,例如视频处理和在画布上绘制、视频分析或与外部音频源同步。
Source maps 源代码映射是现代 Web 开发中的重要工具,可以大幅简化调试工作。本页面介绍了有关Source maps 源代码映射的基础知识、其生成方式,以及源代码映射如何改善调试体验。
无论是从同一网站还是跨网站,并发使用 IndexedDB 的速度都更快。这篇博文提供了所有详细信息,并说明了您需要执行哪些操作才能充分利用这一变更(Chrome 126 及以上版本均提供)。
AVIF 是在网络上提供图片的绝佳选择;AVIF 可以快速编码和解码,同时能够提供最佳的质量或最小的文件大小,具体取决于你的网站。AVIF 是在网页上投放动画的最高效方式。
:user-valid 和 :user-invalid 伪类选择器仅在用户更改输入后才提供有关错误的反馈,从而帮助改善输入验证的用户体验。有了这些新的选择器,您就不再需要编写有状态代码来跟踪用户已更改的输入。
借助 subgrid,可以与嵌套网格共享轨道大小、模板和名称。本文介绍了相关工作原理。
在本文中,我们将介绍 3 种有效技术,用于检测使用无头和非无头 Chrome 浏览器的 Puppeteer 僵 […]
我认为每个前端开发者都应该知道,:has() 不仅仅是一个“父级选择器”,subgrid 如何和为何、如何使用内置 CSS 语法进行嵌套、如何让浏览器在标题文本换行之间取得平衡,以及如何使用容器查询单元。
我认为每个前端开发者都应该知道如何使用容器查询、打造快速滚动体验、避免使用网格执行 position: absolute、快速敲出圆形、使用级联层,以及通过逻辑属性以更少的费用实现更多覆盖范围。
HTML5 的兴起引发了对设备硬件访问的激增。地理定位 (GPS)、Orientation API(加速度计)、WebGL (GPU) 和 Web Audio API(音频硬件)都是理想的示例。本教程介绍了一个新 API GetUserMedia,可让 Web 应用访问用户的摄像头和麦克风。
在 CSS 网格中,您可以使用 grid-template-columns 和 grid-template-rows 属性分别定义线条名称,并跟踪网格列和行的大小。
light-dark() 是接受两个参数的函数,且这两个参数都必须为 。系统会根据使用的配色方案选择其中一种。
这种令人沮丧的体验是由对话框和全屏模式“争”得 Esc 键造成的。这是一场非平等的战斗,因为在默认情况下,全屏模式会获胜。但是,如何才能让对话框成为 Esc 键的胜出者?这正是 Keyboard Lock API 的用武之地。
我们在 Chrome 中添加了侧边栏。这是一个新的配套 surface,用户可以在浏览内容旁边使用工具。今天,我们很高兴地宣布,从 Chrome 114 开始,您的扩展程序将可以在侧边栏中显示内容。
从 Chromium 114 中的 popover API 开始,我们将面向浏览器推出一组新的声明式 HTML API,用于构建弹出式窗口。
滚动驱动的动画是一种向您的网站或 Web 应用添加互动和视觉吸引力的方式,由用户的滚动位置触发。这是一种非常棒的方法,可以持续吸引用户,并让您的网站在视觉上更具吸引力。
Windows 中有一个 WSC(Windows 安全中心)服务,防病毒软件使用它来让 Windows 知道有其他防病毒软件在运行,并禁用 Windows Defender。