-
SharedWorker不能直接显示通知或申请权限,但可作为多窗口通知调度中枢,统一处理去重、可见性校验、节流及降级:通过业务ID缓存、permission与visibilityState双校验、客户端注册/注销管理,确保合规前提下轻量可控地推送通知。
-
划线动效应使用::after伪元素配合width动画或transform:scaleX()实现,避免text-decoration;需设position:absolute、display:block、overflow:hidden及transform-origin:leftcenter以确保精准展开。
-
BEM-Lite是精简版BEM,仅强制block__element和block--modifier两段式命名,允许元素不嵌套、禁止修饰符叠加,不校验文件路径或组件目录绑定。
-
原生<dialog>默认不渲染,必须用showModal()或show()激活;仅设open属性可初始显示,但showModal()才启用遮罩、ESC关闭和焦点锁定。
-
localStorage持久存储、跨标签页共享,适合长期非敏感数据;sessionStorage仅限当前标签页、关闭即销毁,适合临时状态。二者均只支持字符串、需手动序列化,不可存敏感信息,且无过期机制。
-
后端收不到字段八成是误用disabled而非readonly;disabled使字段值不提交,readonly则正常提交且支持聚焦复制;select等不支持readonly的元素需用替代方案。
-
在Leaflet中实现一个始终固定于地图视口中心的标记,关键在于正确监听地图移动事件并动态更新标记位置;需注意事件回调参数是LeafletEvent对象,地图实例需通过event.target访问。
-
必须用bdi隔离用户生成内容方向,否则RTL/LTR混排时标点错位、数字倒序、复制失真几乎必然;bdi强制创建BIDI隔离段,无视父容器dir,仅依内部首字符独立运行UBA,而bdo是字符级硬翻转,仅适用于调试或镜像场景。
-
relative定位不改变元素在文档流中的位置,但会为absolute子元素创建新的定位上下文;即使无偏移,设为relative的父元素也会成为子元素定位参照物;子元素的top、left等属性将相对于该父元素计算,而非继续向上查找;若无定位祖先,则默认相对于视口定位;relative元素仍占据原空间,布局不受影响;常用于弹窗、下拉菜单、卡片按钮、轮播图箭头等需要局部精确定位的场景;其核心作用是静默建立坐标系,实现子元素自由定位且不破坏整体布局。
-
JavaScript操作HTML元素的核心是先用querySelector等方法获取元素,再通过textContent、style、classList等属性或addEventListener等方法修改内容、样式、属性及绑定事件。
-
flat(Infinity)对嵌套评论“不起作用”是因为它只扁平化数组的数组,无法自动提取对象中的replies等字段;仅当数据已是多层嵌套数组形式时才有效,标准树形结构应使用递归flatMap。
-
浏览器静默跳过<source>的最常见原因是media属性写法错误,必须是完整合法的CSS媒体查询,括号不能省、关键字不能漏;其次type值错误、服务器Content-Type不匹配、<source>顺序不当或图片文件损坏也会导致fallback。
-
cite属性仅合法用于<blockquote>、<q>、<ins>、四个标签,值必须为URL,与<cite>元素语义不同,不可混用。
-
<p>滚动百分比应使用document.documentElement.scrollHeight-window.innerHeight计算最大可滚动距离,再结合window.scrollY与Math.min/max限定范围,并用requestAnimationFrame节流更新,同时适配暗色模式与移动端弹性滚动。</p>
-
色差主因是浏览器对HEX颜色的色彩空间解释不一致;必须用rgb(255107107)等显式sRGB语法锚定空间,否则linear-gradient中同一HEX值在Chrome、Firefox、Safari里映射的物理色不同,导致插值路径和最终渐变效果差异。