-
图片未铺满全屏的根本原因是元素自身未占满视口,需确保目标元素(如html、body或容器)设height:100vh且margin:0,同时注意层叠上下文与移动端渲染差异。
-
SharedWorker是唯一能实现多标签页共用单点WebSocket心跳的机制,其核心是将心跳逻辑完全下沉至独立线程,确保页面失焦或后台时仍持续保活;需在shared-worker.js中实现定时ping、pong响应校验、状态广播、指数退避重连及兼容性降级。
-
JavaScript安全解析JSON需三步:严格校验格式、用try...catch捕获异常、解析后验证数据类型与结构;须预处理BOM和空白,确保编码正确。
-
绝对定位元素点不了,通常是被上层遮罩拦截点击或z-index未生效;需检查pointer-events值、层叠上下文及伪元素等覆盖因素,并优先用pointer-events:none穿透。
-
本文用完整工作流讲解前端长列表虚拟滚动:计算可视区、设置上下占位、只渲染窗口数据,并用卡顿排查清单验证优化效果。
-
ID选择器优先级高于类选择器,因CSS权重按四元组(内联,ID,类/伪类/属性,标签/伪元素)逐位比较,ID存在时第二位为1必胜;调试应查隐藏ID,避免滥用!important。
-
元素支持 min 和 max 属性,用于限制用户可选择的日期范围。以下是具体用法和示例:✅ 1. min 属性作用:设置用户可选择的最早日期。格式:YYYY-MM-DD示例:✅ 2. max 属性作用:设置用户可选择的最晚日期。格式:YYYY-MM-DD示例:
input[type="date"]的min/max属性仅接受严格YYYY-MM-DD格式;错误格式如缺零、含时间或斜杠将导致静默失效,checkValidity()返回false;动态设置需用setAttribute或手动触发重绘;联动日期时须同步清空min/max。
-
customElements.define()不保证注册成功,需用customElements.get()验证;无unregister()API,需手动清理实例与资源;attributeChangedCallback不触发初始属性,须在connectedCallback中补读;ShadowDOM样式须在attachShadow后注入。
-
掌握CSS的transformrotate与animation结合使用,可实现加载图标匀速旋转、悬停交互及摆动等动态效果,提升网页视觉体验。
-
媒体查询本身不调用GPU,但其激活的样式(如transform、will-change)会间接增加GPU负载,导致卡顿、掉帧和发热;需优化图层合成、断点单位、布局切换及媒体元素缩放策略。
-
v-text安全输出纯文本,自动转义HTML字符、防XSS;v-html解析执行HTML,不转义、有XSS风险,仅适用于可信富文本。
-
gap比margin更适合卡片布局,因其是容器级属性,只作用于直接子元素间间隙,不触发外边距合并,避免首尾多余空白;但需卡片为flex或grid的直接子元素。
-
结论:别碰body的margin,用容器元素包裹内容并设margin或padding更可控;因浏览器对body默认外边距不一致,重置会引发外边距合并等不可预期问题。
-
viewport-fit=cover是env()生效的硬性前提,不加则iOS上env(safe-area-inset-bottom)恒为0px;必须在meta中完整声明width=device-width、initial-scale=1.0和viewport-fit=cover,缺一不可。
-
全局事件总线易致内存泄漏,须在组件卸载前手动解绑;Vue2用beforeDestroy,Vue3用onBeforeUnmount并保存handler引用;禁用匿名函数;推荐mitt等无副作用库;优先用provide/inject+defineEmits替代跨层级通信。