-
::after伪元素清除浮动的本质是让父容器重新建立包含块并感知浮动子元素:通过插入display:table/block且clear:both的匿名元素撑开高度,现代推荐flow-root替代。
-
opacity渐隐渐现卡顿的主因是未启用硬件加速、混用触发布局属性、动画参数不当、交互控制错误及隐式重排;应加will-change:opacity、避免filter等高开销属性、设时长0.25s~0.4s配ease-in-out、用visibility:hidden替代display:none、禁用JS直接改style.opacity、确保元素尺寸固定并用DevTools检测绘制性能。
-
使用浏览器开发者工具可快速定位HTML资源路径:打开Network面板刷新页面,查看RequestURL及状态码;相对路径以HTML文件所在目录为基准;注意base标签对路径解析的影响。
-
实时更新可选AJAX轮询或WebSocket推送。1.AJAX轮询通过定时请求获取数据,实现简单但效率低,适合低频更新;2.WebSocket支持服务端主动推送,实时性强、开销小,适用于高频场景;3.选择依据为更新频率、用户量及系统复杂度,必要时可用SSE作为折中方案。
-
iOS系统对HTML5<video>的自动播放有严格限制,需同时满足muted、playsinline、正确的MIME类型(如video/mp4)及格式兼容性,否则视频将静音失败或完全不加载。
-
首选CSS@keyframes实现轻量级动态背景,需用fixed定位全屏div并设z-index:-1;Canvas粒子用tsParticles库;SVG动画应内联并用<animateTransform>;须遵守减少运动、不遮文字、不阻塞首屏三大约束。
-
HTML5中value属性用于设置或获取表单元素当前值,行为因input、textarea、select等类型而异;contenteditable元素需模拟value,非表单元素推荐用data-value与dataset配合。
-
:nth-child(-n+3)选择父元素中序号≤3的所有子元素,与标签类型无关;它按DOM顺序计数,不受CSS布局、order或visibility影响,仅受DOM插入顺序和display:none制约。
-
Promise.catch能捕获Promise链中任何环节的拒绝及同步错误,但无法捕获链外同步错误、未包装成Promise的异步错误及未处理的全局拒绝。1.链外同步错误如ReferenceError不在Promise内部抛出则无法被捕获;2.setTimeout等独立异步操作中的错误若未封装为Promise也无法被链上catch捕获;3.若Promise被拒绝但未附加任何catch或onRejected回调,则会触发全局unhandledrejection事件而非被catch捕获。
-
移动端表格横向滚动失效的根本原因是white-space:nowrap缺失或父容器宽度未固定,需在外层容器设overflow-x:auto、table-layout:fixed,并统一td/th的white-space:nowrap。
-
object-fit:cover是唯一靠谱选择,它等比缩放并裁剪溢出部分,确保填满容器且不变形;cover适用于封面图、头像等,contain仅用于需全图显示的场景。
-
JavaScript字符串不可变,所有方法均返回新字符串;需注意slice/substring/substr参数差异、replace默认不全局、substr已废弃、全角空格trim无效等高频坑点。
-
AndroidWebView中window.JSInterface调用失败主因是API17+需加@JavascriptInterface注解且不可带window.前缀;iOSWKWebView须用messageHandlers且注册须在加载前;跨平台应以_platform标识环境并用事件总线处理回调。
-
JavaScriptDate对象无内置格式化方法,月份索引从0开始(5表示6月),应优先用ISO字符串构造、toLocaleDateString或Intl.DateTimeFormat格式化,避免手拼与毫秒硬算,跨月计算宜用date-fns/dayjs,时区需明确UTC处理。
-
答案:前端错误监控需捕获运行时错误、Promise异常、资源加载失败等,通过onerror、unhandledrejection及error事件上报;结合去重采样、SourceMap解析与工程化工具链实现稳定追踪。