-
Chrome提示NotAllowedError的主因是调用getUserMedia时机非法或非安全上下文:须在用户手势同步链中调用,且仅限https/localhost;拒绝后需引导用户手动授予权限;iOSSafari需video标签加playsinline/autoplay/muted并立即play()。
-
:target轮播仅为演示级,因它仅被动响应URL片段变化,缺乏自动播放、循环控制、状态管理及事件监听能力,无法满足生产环境对交互性、稳定性和用户体验的要求。
-
C++的std::thread在WebAssembly中需手动启用线程支持:编译时加-pthread和-sTHREADS=1,JS加载时用WebAssembly.compile/instantiate配合shared内存,并配置CORP/COP头,否则仍为单线程。
-
Flex容器应命名为体现业务职责的block名(如product-grid),而非暴露技术实现的flex-container;项目必须是直接子元素并带完整BEM路径,对齐等布局逻辑直接写在block规则中。
-
弹幕必须用position:absolute脱离文档流,由position:relative的容器包裹;top值需动态计算,滚动用transform:translateX()而非top;顶部/底部弹幕CSS类须分离;JS获取位置应使用getBoundingClientRect()并实时重算。
-
JavaScript字符串比较基于Unicode码点字典序,从左到右逐字符比对;语义化排序应使用localeCompare(),支持多语言和拼音排序。
-
用absolute+负top/right易错位,因负值硬编码且受父容器内边距、缩放、transform等影响;必须给父元素设position:relative,并用transform:translate(50%,-50%)精准锚定右上角,配合z-index≥99和避免overflow:hidden。
-
必须用getBoundingClientRect()计算坐标,因为e.clientX是相对于视口的,而伪元素定位需相对于按钮自身;需用rect.left/rect.top做偏移换算,并为CSS变量显式添加'px'单位,配合transform:translate()和will-change:transform避免重排,且每次点击前须清除旧变量防止动画错乱。
-
CacheAPI只能在ServiceWorker或Worklet线程中使用,页面主线程调用caches.open()会因上下文受限抛出SecurityError或返回undefined;必须通过HTTPS(或localhost)注册ServiceWorker,且所有缓存操作需在install/fetch事件中配合event.waitUntil()和request.clone()等规范写法执行。
-
BlazorServer应用中_framework/blazor.server.js报404,通常并非配置遗漏,而是UseStaticFiles()传入自定义StaticFileOptions导致Blazor内置静态文件服务被覆盖——本文详解问题成因、验证方法及安全可靠的修复实践。
-
HTML倒计时仅用于展示,不能替代真实时间控制;必须用Date.now()动态计算剩余时间戳,结合服务端下发的ISO时间统一时区,并做本地时钟偏移补偿。
-
role不是“增强可访问性”的万能开关,而是HTML语义缺失时的补救手段;用错比不用更危险,如给原生<button>加role="button"会覆盖默认语义,或给<div>加role="button"却不配tabindex="0"和键盘事件监听,导致键盘不可聚焦、不可触发。
-
<p>最稳妥的样式隔离方案是用data-ui属性限定作用域,配合CSSModules或框架提供的CSS变量主题机制。优先通过data-属性前缀约束选择器、避免穿透式覆盖、禁用!important,并利用构建时哈希类名或自定义属性实现天然隔离与动态主题支持。</p>
-
white-space是控制HTML元素内空格、制表符、换行符渲染的核心CSS属性;normal合并空白并自动换行,nowrap合并空白但禁止换行,pre保留所有空白且不换行,pre-wrap和pre-line则分别在保留空白或换行符的同时支持自动换行。
-
HTML本身不实现事件循环,它是浏览器JavaScript运行时与HTML标准共同定义的执行模型;setTimeout回调进入任务队列,Promise.then回调进入独立的微任务队列,后者在每次宏任务结束后立即一次性清空,故执行优先级更高。