呜啦!日常碎碎念,偶尔掉落优质前端博文推荐、学习资源等
网页:https://tg.cosine.ren
本频道的搜索Bot 来辣 👉 @cosSearchBot
私聊直接发消息就可以搜索啦~
🔖tags
#优质博文 #资源推荐 #博客更新 #碎碎念 #项目更新 #手工 #书摘 #阮一峰的科技周刊 #新动态
图频:Cosine 🎨 Gallery @CosineGallery
猫片: @cosine_cat
网页:https://tg.cosine.ren
本频道的搜索Bot 来辣 👉 @cosSearchBot
私聊直接发消息就可以搜索啦~
🔖tags
#优质博文 #资源推荐 #博客更新 #碎碎念 #项目更新 #手工 #书摘 #阮一峰的科技周刊 #新动态
图频:Cosine 🎨 Gallery @CosineGallery
猫片: @cosine_cat
#优质博文 #CSS #前端 #新特性 #浏览器 #实验性功能
Brick by brick: Help us build CSS Masonry
author Patrick Brosset, Alison Maher
Brick by brick: Help us build CSS Masonry
AI 摘要:Chrome 和 Edge 团队宣布 CSS Masonry 布局已在 Chrome/Edge 140 中开放开发者测试。这种新的 CSS 布局模式旨在更有效地创建类似砖块的自适应内容排列,弥补了 CSS Grid、Flexbox 和 Multi-column 的不足。文章详细介绍了 Masonry 的概念、与现有布局的对比、两种正在讨论的语法提案,并提供了如何启用和使用该功能的具体代码示例,鼓励开发者积极测试并提供反馈,以帮助最终确定其 API 设计。
1. 社区动态
• 发布与反馈征集:Microsoft Edge 和 Google Chrome 团队宣布 CSS Masonry 已在 Chrome 和 Edge 140 中开放早期开发者测试,并强调开发者反馈对完善规范和语法的重要性。
• 如何测试:详细说明了在 Chromium 浏览器(Chrome 或 Edge 140+)中通过 about:flags 页面启用 "CSS Masonry Layout" 实验性功能的步骤。
2. CSS Masonry 概述
• 什么是 Masonry:解释了 Masonry 布局模式能够创建类似砖块的紧凑排列,与 CSS Grid、Flexbox 或 Multi-column 不同,它在某个方向上不严格定义轨道,允许内容项自动填充可用空间,特别适用于视觉密集型页面。
• 现有方案及局限性:指出现有通过 JavaScript 库或 CSS Grid/Flexbox/Multi-column 模拟 Masonry 的方法存在性能问题、代码复杂、维护困难以及无法完美实现 Masonry 特性等局限性。
• CSS Masonry 的现状:介绍了 CSS 工作组正在《CSS Grid Level 3》规范中起草 Masonry,并讨论了两种正在考虑的语法提案:独立的 display: masonry 和集成到 CSS Grid 中的 grid-template-*: masonry。
3. 使用 CSS Masonry
• 创建 Masonry 容器:通过代码示例展示了如何使用 display: masonry 和 grid-template-columns 或 grid-template-rows 来创建列式或行式的 Masonry 容器。
• 使用默认轨道尺寸:介绍了 Chromium 实现中 Masonry 的新默认轨道尺寸 repeat(auto-fill, auto),允许在不明确定义轨道尺寸的情况下创建美观的 Masonry 布局。
• 尝试 Masonry 缩写属性:介绍了正在讨论中的 masonry 缩写属性,可用于同时定义 Masonry 方向和轨道定义,简化了语法。
• 自定义轨道尺寸:展示了 Masonry 在定义不同数量和大小的布局轨道方面的灵活性。
• 跨越多轨道:说明了内容项可以跨越多个轨道,这对于突出重要内容或实现全宽布局非常有用。
• 微调项目放置:介绍了 item-tolerance(原名 item-slack)属性,用于控制项目放置的敏感度,使其更好地匹配源顺序或布局需求。
• 其他可用属性:提到 Masonry 容器可以与 CSS Grid 的其他属性(如 grid-row、grid-column、order 等)结合使用。
4. 反馈与展望
• 呼吁开发者反馈:再次鼓励开发者通过 demos、源代 码和实际应用来测试 Masonry,并通过评论相关 Issue 或在社交媒体上分享反馈,以帮助塑造最终的 API。
• 已知限制:列举了当前 Chromium 实现中存在的已知限制,包括密集填充、反向放置、子网格支持、DevTools 支持等,并鼓励开发者报告 Bug。
author Patrick Brosset, Alison Maher
#前端 #HTML #CSS #新特性 #Accessibility #浏览器 #优质博文
A First Look at the Interest Invoker API (for Hover-Triggered Popovers) | CSS-Tricks
author Daniel Schwarz
A First Look at the Interest Invoker API (for Hover-Triggered Popovers) | CSS-Tricks
AI 摘要:Chrome 139 正在实验 Open UI 提出的 Interest Invoker API,该 API 旨在通过声明式 HTML,无需 JavaScript 即可创建鼠标悬停触发的弹出界面,如工具提示和悬浮菜单。它通过 interestfor 属性关联触发器和作为 popover 的目标元素。文章详细探讨了触发器和目标元素的用法、不同 popover 类型的影响、相关的 JavaScript 事件、以及通过 interest-show-delay 和 interest-hide-delay 等 CSS 属性控制的“兴趣延迟”。同时,它也深入讨论了键盘和屏幕阅读器用户的可访问性支持,并指出该 API 虽处于早期实验阶段,但有望极大简化此类 UI 的开发,尽管在某些 popover 行为和触屏交互上仍有待完善。
author Daniel Schwarz
#优质博文 #浏览器
省流:讨伐现代 IE(
Apple's Browser Engine Ban Persists, Even Under the DMA - Open Web Advocacy
author Open Web Advocacy
省流:讨伐现代 IE(
Apple's Browser Engine Ban Persists, Even Under the DMA - Open Web Advocacy
AI 摘要:本文详细探讨了苹果公司对第三方浏览器引擎在 iOS 上的限制,即使在欧盟《数字市场法案》(DMA)生效后,苹果依然通过技术和合同障碍阻止其他浏览器厂商在欧盟成功部署自己的引擎。文章指出苹果此举是为了保护其高利润产品 Safari 及其与谷歌的搜索引擎收入,同时限制网页应用(Web Apps)与原生应用的竞争能力,损害消费者和开发者的利益。作者呼吁欧盟委员会采取强制措施,确保苹果真正遵守 DMA,开放浏览器引擎竞争。
author Open Web Advocacy
#优质博文 #chrome #webgl #性能优化 #浏览器 #新动态
Introducing Skia Graphite: Chrome's Rasterization Backend for the Future
author Claire Charron
Introducing Skia Graphite: Chrome's Rasterization Backend for the Future
AI 摘要:本文详细介绍了 Chrome 在 Apple Silicon Macs 上推出的 Skia 新光栅化后端 Graphite。Graphite 是一个面向未来的图形渲染技术,显著提升了 Chrome 在 Motionmark 1.3 测试中的表现,同时为未来的图形改进奠定了基础。通过支持现代图形 API(如 Metal、Vulkan 和 D3D12)、多线程设计以及深度测试等创新技术,Graphite 不仅提高了渲染性能,还优化了用户体验,减少了滚动卡顿和页面加载等待时间。
1. Skia 在 Chrome 中的历史:
• 介绍了 Skia 作为 Chrome 图形渲染核心的历史,从最初的性能问题到引入 GPU 加速后端 Ganesh。
• Ganesh 虽性能优异,但因其以 OpenGL 为中心的设计,难以充分利用现代图形 API 的优势,因此团队开发了 Graphite。
2. Graphite 的成果:
• 在 Macbook Pro M3 上,Motionmark 1.3 得分提升近 15%。
• 优化了真实世界指标,如交互到下一帧时间(INP)、最大内容绘制时间(LCP)、图形流畅度(掉帧百分比)以及 GPU 内存使用等。
3. Graphite 与 Ganesh 的区别:
• 现代图形 API:Graphite 利用 Chrome 的 WebGPU 实现 Dawn,支持 Metal、Vulkan 等现代 API,减少维护负担并提升多线程和 GPU 计算能力。
• 2D 深度测试:通过深度测试减少过度绘制(overdraw),优化不透明和半透明对象的渲染顺序,提升性能并降低移动设备功耗。
• 多线程设计:Graphite 的 API 支持多线程,利用独立记录器(Recorders)在多线程上生成记录(Recordings),减轻主线程负担,减少卡顿和延迟。
• 性能悬崖与管线编译:Graphite 减少渲染管线数量,避免因管线编译导致的卡顿,确保复杂内容与简单内容渲染效率一致。
4. 未来计划:
• 多线程光栅化:计划将光栅化任务分配到多线程,进一步提升性能。
• 减少简单内容的 GPU 内存:通过重新发布记录(Recordings)优化滚动,减少不必要的 GPU 内存分配。
• GPU 计算路径光栅化:探索 GPU 计算路径光栅化技术,提升视觉质量和性能,替代传统的 MSAA 和 CPU 光栅化。
author Claire Charron
#优质博文 #前端 #浏览器 #插件开发 #pdf
基于Chrome扩展的浏览器可信事件与网页离线PDF导出
via WindrunnerMax
基于Chrome扩展的浏览器可信事件与网页离线PDF导出
AI 摘要:这篇文章探讨了如何通过Chrome扩展实现浏览器可信事件和网页离线PDF导出。首先,作者介绍了使用Chrome DevTools Protocol协议与浏览器进行交互,以实现自动化任务,比如复制和粘贴操作。文章详细描述了如何在扩展中模拟用户操作以绕过浏览器的安全限制,通过注入脚本和使用DevTools Protocol模拟按键事件,实现内容的选中和复制。接着,作者探讨了如何通过该协议实现网页的PDF导出,利用Page.printToPDF方法生成自定义的PDF文件,并通过扩展的下载API实现自动下载。文中还提供了具体的代码示例和调试方法,帮助开发者实现这些功能。
via WindrunnerMax