<details> 中 <summary> 必须是第一个直接子元素,不可嵌套或包裹在其他标签内;支持默认展开(open 布尔属性)、JS 控制(el.open = false)、toggle 事件监听;兼容性需注意 IE 不支持,无障碍需保留原生语义,避免覆盖 role 或隐藏 summary。details 和 summary 标签怎么写才不塌陷直接用 <details> 包 <summary>,但浏览器默认样式会让 <summary> 前出现小三角,且点击后展开内容——这没问题;问题常出在内容塌陷、点击无反应或样式错乱。根本原因是:<summary> 必须是 <details> 的第一个子元素,且不能嵌套另一个 <details> 或 <summary>。错误写法:<details><p><summary>标题</summary></p><p>正文</p></details>(<summary> 不是直接子元素)正确结构:<details><summary>标题</summary><p>正文</p></details>如果用了 CSS 重置了 outline 或 list-style,可能让小三角消失,但交互仍存在——建议用 appearance: none + 自定义伪元素控制,而非直接删光summary 里能放按钮或链接吗能,但要注意焦点和语义。原生 <summary> 是可聚焦、可键盘操作(Space/Enter)的交互元素,如果在里面塞 <button> 或 <a href>,会导致事件冒泡冲突或双击行为(比如点链接同时触发 details 切换)。避免在 <summary> 内写 <button onclick="toggle()"> ——它和父级 <details> 的默认切换逻辑打架真要放链接,加 event.stopPropagation():例如 <summary><a href="#" onclick="event.stopPropagation();doSomething()">跳转</a></summary>更稳妥的做法:把链接放在展开后的内容区,而不是 summary 行内details 默认展开和 JS 控制开关状态<details open> 可以默认展开,但别以为加个 open="false" 就能关闭——HTML 属性 open 是布尔属性,只看是否存在,不看值。JS 操作要用 open 属性(不是 getAttribute)。默认展开:<details open><summary>说明</summary><p>内容</p></details>JS 关闭:document.querySelector('details').open = false监听切换:el.addEventListener('toggle', () => console.log(el.open)) —— 注意只有用户手动触发才会触发 toggle 事件,JS 赋值不会触发兼容性提示:IE 完全不支持,Safari 12.1+、Chrome 12+、Firefox 49+ 支持良好;如需兼容旧环境,得降级为手写 aria-expanded + class 切换无障碍(a11y)容易漏掉的三件事屏幕阅读器靠 <details> 的隐式 ARIA 角色(role="group")和 <summary> 的 role="button" 来识别,但实际项目中常因以下操作破坏语义: Fotor AI Image Generator Fotor 平台的 AI 图片生成器
如何处理SQL查询中的逻辑重叠:AND OR嵌套优先级.txt
张小明
前端开发工程师
myBuilder主要新功能介绍(4月版本v2.x.26)
前端UI组件编程性增强所有组件统一新增名称属性设置,配置名称后,可在事件JavaScript脚本中通过getUIData、getUIConfigBy函数获取组件变量,进而调用该组件的公开函数。组件函数已新增代码提示支持,编码时可自动带出相关提示内容&a…
MFC 去掉CSV文件(指定文件路径)末尾的换行符
#include <fstream> #include <string>//去掉CSV文件(指定文件路径)末尾的换行符 BOOL RemoveTrailingNewlineFromCSV2(const CString& strFilePath) {if (strFilePath.IsEmpty())return FALSE;// 以二进制模式打开文件std::fstream fil…
RTSP vs RTMP:2024年了,做直播和监控到底该选哪个?从协议原理到实战选型指南
RTSP与RTMP协议深度解析:2024年直播与监控场景技术选型指南 当我们需要在直播教育、电商带货或安防监控场景中构建流媒体系统时,RTSP与RTMP这两个经典协议总是绕不开的技术选项。随着WebRTC的崛起和HLS的普及,2024年的技术选型需要考虑更多维…
保姆级教程:从OpenWrt编译目录里精准找到你的路由器固件(以MT7688/小米路由为例)
从OpenWrt编译目录精准定位路由器固件的终极指南 当你第一次成功编译完OpenWrt系统,面对bin/targets目录下密密麻麻的固件文件时,是否感到无从下手?特别是对于采用MT7688这类常见芯片的路由器,如小米、华硕等品牌设备,…
全球领先C++ web框架paozhu常规更新:修复bug、提升稳定性,还加入微信小程序支付例子
全球领先的C web框架paozhu进行常规更新,修复了ssl握手和清除连接的bug,改进获取ip方式,提升稳定性,还加入微信小程序支付例子。 更新亮点 此次更新修复了ssl握手bug和清除连接的bug,改进了获取ip方式,针对…
当‘泳者’伦尼遇到‘灯塔’激流:用这个经典故事复盘你的项目风险管理
当‘泳者’伦尼遇到‘灯塔’激流:用这个经典故事复盘你的项目风险管理 项目管理领域有个永恒难题:为什么那些看似完美的计划总会在关键时刻崩盘?就像故事中自信的游泳高手伦尼,面对灯塔激流时才发现自己高估了能力、低估了风险。这…