惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
雷峰网
雷峰网
博客园 - 三生石上(FineUI控件)
月光博客
月光博客
有赞技术团队
有赞技术团队
阮一峰的网络日志
阮一峰的网络日志
Last Week in AI
Last Week in AI
G
Google Developers Blog
腾讯CDC
B
Blog
Microsoft Azure Blog
Microsoft Azure Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Microsoft Security Blog
Microsoft Security Blog
人人都是产品经理
人人都是产品经理
博客园_首页
T
Tailwind CSS Blog
C
Check Point Blog
博客园 - 【当耐特】
MongoDB | Blog
MongoDB | Blog
A
About on SuperTechFans
Y
Y Combinator Blog
L
LangChain Blog
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI

张鑫旭-鑫空间-鑫生活

1分钟速度了解text-align match-parent声明 « 张鑫旭-鑫空间-鑫生活 光标的形状也能设置了,就是CSS caret-shape属性 « 张鑫旭-鑫空间-鑫生活 pretext与文字四面环绕效果的实现 « 张鑫旭-鑫空间-鑫生活 JSON.rawJSON方法的作用是什么? « 张鑫旭-鑫空间-鑫生活 如何使用CSS判断鼠标从哪个方向进入元素? « 张鑫旭-鑫空间-鑫生活 借助mediabunny纯JS实现视频水印、剪裁、合成等功能 « 张鑫旭-鑫空间-鑫生活 务必谨慎使用JS WeakRef弱引用 « 张鑫旭-鑫空间-鑫生活 CSS六边形头像的实现与蜂巢布局 « 张鑫旭-鑫空间-鑫生活 CSS corner-shape与背景底纹技术 « 张鑫旭-鑫空间-鑫生活 浅学WebTransport API:下一代Web双向通信技术 « 张鑫旭-鑫空间-鑫生活 HTML dialog元素新支持了closedBy属性 « 张鑫旭-鑫空间-鑫生活 HTML interestfor属性与悬停popover交互效果 « 张鑫旭-鑫空间-鑫生活 CSS3模拟window7炫酷界面效果展示 « 张鑫旭-鑫空间-鑫生活 图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活 纯js无图片无外链CSS图片幻灯片播放插件 « 张鑫旭-鑫空间-鑫生活 CSS border三角、圆角图形生成技术简介 « 张鑫旭-鑫空间-鑫生活 CSS “渐进增强”在web制作中常见应用举例 « 张鑫旭-鑫空间-鑫生活 让IE6/IE7/IE8浏览器支持CSS3属性 « 张鑫旭-鑫空间-鑫生活 jQuery – 高亮动态显示页面HTML代码插件 « 张鑫旭-鑫空间-鑫生活 翻译 – 逐渐消失的Flash网站 « 张鑫旭-鑫空间-鑫生活 CSS reset的重新审视 – 避免样式重置 « 张鑫旭-鑫空间-鑫生活 新浪微博插入话题后部分文字选中的js实现 « 张鑫旭-鑫空间-鑫生活 JavaScript实现http地址自动检测并添加URL链接 « 张鑫旭-鑫空间-鑫生活 CSS实现兼容性的渐变背景(gradient)效果 « 张鑫旭-鑫空间-鑫生活 CSS content内容生成技术以及应用 « 张鑫旭-鑫空间-鑫生活 CSS gradient渐变之webkit核心浏览器下的使用 « 张鑫旭-鑫空间-鑫生活 CSS渐变之CSS3 gradient在Firefox3.6下的使用 « 张鑫旭-鑫空间-鑫生活 区分IE8/IE7/IE6及其他浏览器-CSS “\9″hack « 张鑫旭-鑫空间-鑫生活 CSS实现跨浏览器兼容性的盒阴影效果 « 张鑫旭-鑫空间-鑫生活 CSS3&HTML5各浏览器支持情况一览表 « 张鑫旭-鑫空间-鑫生活
HTML之快速了解hidden=until-found的作用 « 张鑫旭-鑫空间-...
张鑫旭,zhangxinxu · 2025-08-29 · via 张鑫旭-鑫空间-鑫生活

by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=11844
本文可全文转载,但需要保留原作者、出处以及文中链接,AI抓取保留原文地址,任何网站均可摘要聚合,商用请联系授权。

一、hidden属性新增新值

任意HTML元素,设置hidden属性后,会隐藏自身(样式没有被重置的前提下)。

可能有些人并不知道,hidden属性还支持一个名为until-found值,他可以让内容隐藏,但是在特殊场景下也会显示。

这个特殊场景包括锚点锚定,或者浏览器层面的文字搜索匹配。

我们开看例子。

如下HTML代码:

<div class="container">
  <a href="#zhangxinxu">显示作者名字</a>
  <h5 class="target">
    <p id="zhangxinxu" hidden="until-found">名字是张鑫旭</p>
  </h5>
</div>

我们不妨扔一点样式美化下,至于什么样式不重要,总之,就有会如下所示的实时渲染效果:

此时,我们点击上面的链接文字,触发锚点跳转,就会发现,原本隐藏的<p>元素显示了。

就像下图这样:

姓名显示后的效果

大家再试试搜索

如果是桌面端浏览器,试试按下Ctrl+F搜索,例如:

搜索示意

此时,当我们的搜索选项与hidden="until-found"里面的内容匹配的时候,这段内容就突然显示了,且高亮的颜色(橙色背景)和其他区域匹配的文字颜色(黄色背景)不同,如下截图所示:

搜索高亮

二、beforematch 事件

until-found隐藏的元素还支持一个名为beforematch的事件,在该元素从隐藏变成显示之前的一瞬间执行。

还是上面的案例,我们给元素加个beforematch事件,让显示的时候,外面的容器边框颜色高亮,则可以这么处理:

const untilFound = document.getElementById("zhangxinxu");
untilFound.addEventListener('beforematch', () => {
  untilFound.closest('div').style.borderColor = 'red';
});

实时测试效果如下(大胆点击链接,看看边框红了没有):

三、content-visibility: hidden

hidden="until-found"隐藏和传统的hidden隐藏不同,后者是display:none隐藏,但是,前者使用的是content-visibility:hidden隐藏,这个隐藏在我的《CSS新世界》这本书中有介绍。

content-visibility:hidden只会隐藏内容,元素的边框、布局、背景都是保留的,想必visibility: hidden,其不会除非内容渲染,在频繁显隐交互的场景下有更高的性能。

content-visibility示意

所以,hidden="until-found"直接设置在内容元素上是无效的,例如保持内联水平的<span>元素上,等。

四、until-found的应用场景

基于其“隐藏但可被发现”的特性,hidden=”until-found” 非常适合以下场景:

  • 可折叠/可展开内容(如手风琴菜单):这是比较典型的应用场景。你可以将折叠起来的内容设置为 hidden=”until-found”。这样,即使用户没有展开这些内容,他们仍然可以通过页面查找功能搜索到里面的信息。当用户通过查找或片段导航找到这些隐藏内容时,浏览器会自动移除 hidden 属性并将其显示出来。
  • 初始隐藏的提示或帮助信息:页面上有些辅助信息或详细说明可能默认是折叠或隐藏的,以保持界面简洁。使用 hidden=”until-found” 可以确保用户需要通过搜索特定关键词来获取这些帮助信息时,能够轻松找到它们。
  • 标签页(Tabs)中未激活的内容:在一些标签页界面中,非当前激活的标签页内容通常是隐藏的。如果你希望用户能通过搜索找到所有标签页内的内容,而不仅仅是当前显示的那个,hidden=”until-found” 可以提供帮助。

至于提高页面内容显隐的渲染性能,这个大家就不用考虑了,没有任何意义,1ms和2ms的差异有区别吗?没有区别,对吧。

五、兼容性、结语、渔获

Safari浏览器已经确定支持该特性,Chrome浏览器已经支持好几年了。

until-found兼容性截图

结语

懒得结语

渔获展示

见上一篇文章。

本周钓货回头补上。

好了,就这样吧。

😉😊😇
🥰😍😘

本文为原创文章,会经常更新知识点以及修正一些错误,因此转载请保留原出处,方便溯源,避免陈旧错误知识的误导,同时有更好的阅读体验。
本文地址:https://www.zhangxinxu.com/wordpress/?p=11844

(本篇完)