搜索
首页web前端js教程修复详细信息元素

html5 <details></details>元素提供了一种创建可折叠内容的简洁方法,但它提出了一个重要的可用性挑战:针对崩溃的部分中的内容的哈希链接未能透露该内容。本文详细介绍了一种逐步增强的JavaScript解决方案,包括用于缺乏本机支持的浏览器的可访问的多填充,以解决此问题。<details></details>>

钥匙要点:

  1. 元素虽然有用,但却遇到了针对隐藏内容的哈希链接的可用性问题。<details></details>
  2. polyfill有效地模拟不支持的浏览器的功能。
  3. 当哈希链接指向倒塌区域内的元素时,多填充的有效性被损害。 该页面保留在顶部,遮盖了目标。 <details></details>递归函数通过自动扩展相关的
  4. 元素来解决这一问题。
  5. <details></details>

<details></details>元素与

>元素配对,创建可折叠的内容。 (如果存在)必须是第一个或最后一个孩子;所有其他内容都是可折叠的。

属性迫使内容最初可见。 目前,只有Chrome完全支持<details></details>。 下图说明了Chrome的渲染:<summary></summary> <summary></summary>open <details></details>

创建一个polyfillFixing the details Element

基本的多填充通过>属性检测天然支持。 本机实现不需要手册属性更新,但是ARIA属性仍然需要管理。 典型的结构看起来像:

open脚本管理open属性,并将其用作视觉崩溃的CSS选择器:

<details open="open">
  <summary>This is the summary element</summary>
  <div>This is the expanding content</div>
</details>

包装aria-expanded简化了管理

details > div[aria-expanded="false"] {
  display: none;
}
属性,尤其是对于像IE7这样的旧浏览器,需要其他样式处理。

>函数处理键盘中的浏览器不一致点击事件触发:<div> <code>aria-expanded displayaddClickEvent突出显示哈希问题

function addClickEvent(node, callback) {
  // ... (function body as in original article) ...
}

核心问题是当哈希链接(例如#首先要素)靶向崩溃区域内的元素时出现的。该页面不滚动到目标;它保持在顶部,使目标隐藏。

修复哈希问题

<details></details>

递归

函数解决了以下问题:

<details open="open">
  <summary>This is the summary element</summary>
  <div>This is the expanding content</div>
</details>

此函数递归扩展了包含目标的任何祖先<details></details>元素。 在页面加载中为location.hash和内部链接单击。 为了确保可靠的滚动,在扩展后使用window.scrollBy,将目标定位在视口内。 保持原始的location.hash行为(在页面刷新上没有自动滚动)。

>

结论

这个增强的解决方案,称为“综合”,超出了基本的多填充。它提高了所有浏览器的可用性和可访问性,解决了<details></details>>元素的固有局限性。

经常询问有关HTML详细信息元素的问题(常见问题解答) (原始输入的FAQ部分保持不变。)

以上是修复详细信息元素的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
JavaScript的起源:探索其实施语言JavaScript的起源:探索其实施语言Apr 29, 2025 am 12:51 AM

JavaScript起源于1995年,由布兰登·艾克创造,实现语言为C语言。1.C语言为JavaScript提供了高性能和系统级编程能力。2.JavaScript的内存管理和性能优化依赖于C语言。3.C语言的跨平台特性帮助JavaScript在不同操作系统上高效运行。

幕后:什么语言能力JavaScript?幕后:什么语言能力JavaScript?Apr 28, 2025 am 12:01 AM

JavaScript在浏览器和Node.js环境中运行,依赖JavaScript引擎解析和执行代码。1)解析阶段生成抽象语法树(AST);2)编译阶段将AST转换为字节码或机器码;3)执行阶段执行编译后的代码。

Python和JavaScript的未来:趋势和预测Python和JavaScript的未来:趋势和预测Apr 27, 2025 am 12:21 AM

Python和JavaScript的未来趋势包括:1.Python将巩固在科学计算和AI领域的地位,2.JavaScript将推动Web技术发展,3.跨平台开发将成为热门,4.性能优化将是重点。两者都将继续在各自领域扩展应用场景,并在性能上有更多突破。

Python vs. JavaScript:开发环境和工具Python vs. JavaScript:开发环境和工具Apr 26, 2025 am 12:09 AM

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

JavaScript是用C编写的吗?检查证据JavaScript是用C编写的吗?检查证据Apr 25, 2025 am 12:15 AM

是的,JavaScript的引擎核心是用C语言编写的。1)C语言提供了高效性能和底层控制,适合JavaScript引擎的开发。2)以V8引擎为例,其核心用C 编写,结合了C的效率和面向对象特性。3)JavaScript引擎的工作原理包括解析、编译和执行,C语言在这些过程中发挥关键作用。

JavaScript的角色:使网络交互和动态JavaScript的角色:使网络交互和动态Apr 24, 2025 am 12:12 AM

JavaScript是现代网站的核心,因为它增强了网页的交互性和动态性。1)它允许在不刷新页面的情况下改变内容,2)通过DOMAPI操作网页,3)支持复杂的交互效果如动画和拖放,4)优化性能和最佳实践提高用户体验。

C和JavaScript:连接解释C和JavaScript:连接解释Apr 23, 2025 am 12:07 AM

C 和JavaScript通过WebAssembly实现互操作性。1)C 代码编译成WebAssembly模块,引入到JavaScript环境中,增强计算能力。2)在游戏开发中,C 处理物理引擎和图形渲染,JavaScript负责游戏逻辑和用户界面。

从网站到应用程序:JavaScript的不同应用从网站到应用程序:JavaScript的不同应用Apr 22, 2025 am 12:02 AM

JavaScript在网站、移动应用、桌面应用和服务器端编程中均有广泛应用。1)在网站开发中,JavaScript与HTML、CSS一起操作DOM,实现动态效果,并支持如jQuery、React等框架。2)通过ReactNative和Ionic,JavaScript用于开发跨平台移动应用。3)Electron框架使JavaScript能构建桌面应用。4)Node.js让JavaScript在服务器端运行,支持高并发请求。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具