html5 <details></details>
元素提供了一种创建可折叠内容的简洁方法,但它提出了一个重要的可用性挑战:针对崩溃的<details></details>
>
钥匙要点:
<details></details>
<details></details>
递归函数通过自动扩展相关的<details></details>
<details></details>
元素与
属性迫使内容最初可见。 目前,只有Chrome完全支持<details></details>
。 下图说明了Chrome的渲染:<summary></summary>
<summary></summary>
open
<details></details>
创建一个polyfill
基本的多填充通过>属性检测天然支持。 本机实现不需要手册属性更新,但是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; }
>函数处理键盘中的浏览器不一致点击事件触发:<div>
aria-expanded
display
addClickEvent
突出显示哈希问题
function addClickEvent(node, callback) { // ... (function body as in original article) ... }
核心问题是当哈希链接(例如#首先要素)靶向崩溃区域内的元素时出现的。该页面不滚动到目标;它保持在顶部,使目标隐藏。
修复哈希问题<details>
函数解决了以下问题: 此函数递归扩展了包含目标的任何祖先 结论 这个增强的解决方案,称为“综合”,超出了基本的多填充。它提高了所有浏览器的可用性和可访问性,解决了 经常询问有关HTML详细信息元素的问题(常见问题解答)
(原始输入的FAQ部分保持不变。) 以上是修复详细信息元素的详细内容。更多信息请关注PHP中文网其他相关文章!<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>
>元素的固有局限性。