-
BroadcastChannel不支持MessagePort,因其仅允许结构化克隆数据,而MessagePort无法被序列化,强行传递会抛出DATA_CLONE_ERR错误;正确方案是用BroadcastChannel广播任务信号,再通过SharedWorker或MessageChannel建立点对点通信通道。
-
<details>标签原生支持折叠展开,无需JavaScript;必须以<summary>为首个子元素,用::before伪元素自定义箭头最兼容;JS应操作open属性并监听toggle事件;IE不支持需降级处理,无障碍需保留语义与焦点。
-
navigator.storage.estimate()是唯一可靠方式,返回usage(已用字节数)和quota(系统建议配额,单位字节),但quota可能为undefined,且仅在HTTPS或localhost安全上下文中可用。
-
flex:1为什么在垂直滚动容器里不生效因为flex:1本质是缩写flex:110,它依赖父容器有明确高度才能“撑开”子项;而如果父容器高度未设(比如只靠内容撑开),flex:1就没参考系,自然不收缩也不拉伸,更不会触发滚动。常见错误现象:overflow-y:auto完全没反应,列表内容直接溢出容器下方必须确保父容器有固定/可计算的高度:比如设height:100vh、max-height:500px,或父级是display:flex;flex-direction
-
:hover与:first-of-type冲突本质是优先级相同导致层叠覆盖;应合并为.list-item:hover:first-of-type确保语义准确且规避竞争。
-
color-stop位置必须带单位,百分比或长度值缺一不可;漏单位会导致色标被丢弃,多色标重叠可实现硬边过渡,rgba可控制透明度,radial-gradient中位置基于径向半径比例,旧Safari对同位置多色标支持不稳定。
-
能,AbortController可真正中断fetch请求的“等待响应头”和“解析响应体”阶段,但不终止已开始传输的响应流或底层TCP连接;调用abort()后fetchPromise立即以AbortErrorreject,需手动处理已resolve的Response并显式忽略该错误。
-
<dialog>标签需调用show()或showModal()才显示;show()为非模态,背景可交互;showModal()为模态,禁用背景、自带遮罩、支持Esc及点击遮罩关闭,但需dialog::backdrop样式生效,且须正确处理焦点与可访问性降级。
-
HTML无法单独实现交互式看板,需CSS+JavaScript配合:用flexbox布局三列容器,监听dragstart/drop事件实现拖拽,通过localStorage保存卡片ID序列状态。
-
多个@keyframes可共存但元素仅能应用一个animation-name;需用逗号分隔多个名称实现叠加,且各子属性项数必须严格对应;transform函数顺序影响最终效果,合并写入同一句可实现复杂原子动画。
-
box-sizing默认值为content-box导致宽高计算反直觉,即width/height仅指内容区,padding和border额外增加;设为border-box后则宽高包含padding和border,更符合设计稿的“总尺寸”预期。
-
Chrome和Safari中清除按钮需用::-webkit-search-cancel-button配合-webkit-appearance:none等样式隐藏,仅appearance:none或opacity:0不兼容;Firefox不支持该伪元素;隐藏后仍可通过快捷键清空,彻底禁用需JavaScript拦截。
-
transform:rotate()单独使用无动画效果,需配合transition或@keyframes;hover中直接写会瞬变,须加transition:transform0.3sease并定义起始态;@keyframes旋转进入需明确from/to、单位、forwards及transform-origin。
-
ESLint与Prettier结合可统一代码风格并提升质量。1.ESLint检测代码问题,通过.eslintrc.js配置环境、规则、插件等;2.Prettier负责格式化,通过.prettierrc定义缩进、引号、分号等样式;3.使用eslint-config-prettier禁用冲突规则,eslint-plugin-prettier将Prettier作为ESLint规则;4.集成到编辑器(如VSCode)实现保存自动修复;5.配置npm脚本进行lint和format;6.结合Husky+lint-st
-
ID选择器赢,因其权重100高于class选择器的10;同元素同属性时,ID规则覆盖class规则,浏览器开发者工具中被划掉的样式即被更高权重要素覆盖。