-
用IntersectionObserver实现视频自动播放与离开暂停,需监听视口交集、设置静音autoplay、防抖处理状态、兼容降级。核心是isIntersecting为true时try-catch调用play()(确保muted),false时pause();不支持时回退scroll+getBoundingClientRect模拟。
-
HTML5本身不提供高斯模糊原生API,需依赖CSSfilter:blur()(快捷但粒度粗、近似模拟)或Canvas手动实现(可控但开销大),二者均受限于性能、跨域、精度与导出质量。
-
按钮偏移的根本原因是父容器缺乏明确尺寸或定位上下文,导致绝对定位或浮动失去锚点;应为父容器设position:relative,优先使用flexbox的margin-auto或align-self实现稳定对齐。
-
CSScontent属性无法响应屏幕尺寸变化,必须配合媒体查询控制伪元素显隐;常见失效原因包括样式覆盖、display/visibility隐藏、空content值及布局塌陷;推荐移动优先写法并注意兼容性与布局抖动问题。
-
最轻量方案是用dialog元素,语义清晰、可访问性好,但Safari15.4前不支持;需fallback到带aria-modal和焦点管理的div;注意scroll-behavior、链接安全及法律有效性。
-
代码分割是构建工具配合import()语法实现的运行时分包策略,将大bundle拆为多个小chunk按需加载;必须用字符串字面量路径调用import(),且不能在顶层作用域使用。
-
template标签不渲染、不执行、不绑定,仅作离线仓库;必须用template.content.cloneNode(true)获取可操作内容,填值优先用textContent/value,批量插入需用DocumentFragment优化性能。
-
Grid兼容性需按特性分级处理:IE11仅支持-ms-grid旧语法且需手动换算行列索引,Safari9–10.1不支持gap和fr单位;应优先用@supports检测关键能力并外置降级样式,gap失效时用margin负值抵消。
-
white-space:nowrap是最直接有效的禁止自动换行方式,但需配合width/max-width、display:block/inline-block、overflow:hidden及text-overflow:ellipsis才能实现完整截断效果,且在表格、contenteditable等场景需额外处理。
-
HTML本身无函数,问题实为HTML+JS前端应用在被动散热设备上能否稳定运行;关键取决于JS负载、渲染压力及浏览器实现,需优化代码与配置以控温降耗。
-
用::before和::after实现文字两侧横线需包裹文字于容器(如span或h2),设display:inline-flex/align-items:center,伪元素content:""、flex:1、border-top;IE11兼容用display:table布局。
-
边框描边动画本质是控制虚线显示节奏:stroke-dasharray设路径总长,stroke-dashoffset控制起始位置;需用getTotalLength()或JS动态计算周长,响应式下须监听resize重算;CSS变量可驱动stroke-dashoffset动画(Chrome110+/Firefox112+支持transition),但@keyframes中var(--offset)无效;SVG推荐显式path而非rect,避免圆角导致dash跳变;Safari性能差时宜改用mask+backgr
-
Blob本身不提升性能,但能绕过传统文件处理瓶颈:避免全量加载内存、跳过服务器中转、支持流式操作;应分块读取、及时释放引用、优先用URL.createObjectURL预览,构造File需继承Blob,fetch后用blob.stream()实现无压力解析。
-
RSA-OAEP+AES-GCM混合加密是当前Web端最可行方案,因RSA-OAEP有长度限制(2048位密钥仅支持约214字节),无法加密长消息,而AES-GCM负责主体加密、RSA-OAEP加密临时密钥,兼顾效率与兼容性。
-
gap比margin更可靠,因其是布局层原生间隔控制,不参与盒模型计算,不触发重排、不影响justify-content对齐;而margin模拟易在动态增删或响应式时出错,且无法实现容器边缘留白。