-
长按事件不能直接用ontouchstart+setTimeout,因移动端默认行为干预、touchend不可靠及误判风险;需结合touchmove位移判断、getBoundingClientRect定位菜单、role属性提升可访问性,并务必处理touchcancel清理定时器。
-
不能只靠媒体查询单设column-count,必须配合break-inside:avoid、column-gap及阶梯断点;否则小屏会硬切文字、劈开图片、产生空白列,且列高严重不齐。
-
不能将断点值塞入BEM修饰符名,因浏览器不识别如@md等后缀,响应式必须由@media显式控制;修饰符只表达状态意图,断点需统一变量管理并由JS监听matchMedia切换类名。
-
最简可行轮播图需用原生JS控制transform:translateX()与setInterval,确保不跳帧、响应及时、索引取模防越界;手动操作后重置定时器;无缝轮播靠首尾复制DOM;触摸滑动用rAF节流+touchend判定。
-
querySelectorAll返回静态NodeList,非Array,旧浏览器不支持forEach;推荐用Array.from转数组再遍历,确保兼容性与语义清晰。
-
根本原因是@use默认不注入变量到当前作用域,必须通过命名空间访问(如variables.$primary-color);常见错误包括漏写$、路径未以下划线开头、@use未置顶、混用@import导致整文件降级为legacy模式。
-
JavaScript操作XML分解析与生成两部分:浏览器用DOMParser和XMLSerializer,Node.js需xml2js等第三方库;解析时注意MIME类型、错误检测及大小写敏感性,生成时需手动美化格式。
-
答案:viewport设置确保页面按设备宽度显示,rem单位基于根元素字体大小实现弹性布局。通过meta标签定义视口,结合JavaScript动态调整html的font-size,使rem随屏幕尺寸等比缩放,再配合PostCSS自动化转换px为rem,最终实现移动端响应式适配。
-
懒加载与动态导入本质是按需加载技术,核心为动态import()语法,支持运行时调用、变量路径和构建工具代码分割,用于路由、交互、视口等场景,需结合实际性能权衡使用。
-
使用CSS媒体查询定义打印样式,隐藏非必要元素并调整布局;2.通过@page设置A4尺寸与页边距,避免内容截断;3.添加一键打印按钮调用window.print();4.可选集成jsPDF或Puppeteer实现高质量输出。核心是确保内容在纸质环境中保持可读性与结构完整。
-
Intl是浏览器提供的底层格式化能力,不负责翻译或语言切换;需显式指定timeZone避开时区陷阱;currency格式需关注minimumFractionDigits;中文排序须用zh-Hans-CN和sensitivity:'base'。
-
cellspacing已被废弃,应改用CSS的border-spacing配合border-collapse:separate;需重置单元格默认padding并注意IE8的doctype要求。
-
WeakMap是实现真正私有属性的可靠方式,因其键为弱引用对象且键集合完全不可见,无法被枚举、遍历或反射探测;配合模块级WeakMap实例与实例作为键,可安全封装私有数据。
-
原型链的终端是null,它仅作查找终止符而非继承参与者;Object.prototype才是继承实际终点,提供toString等通用方法;null是规范规定的[[Prototype]]合法原始值边界,确保查找逻辑明确终止。
-
浮动元素后出现空白是因为其脱离文档流导致父容器高度塌陷,后续元素从顶部布局;clear需作用于浮动后的块级元素才有效,现代推荐用display:flow-root触发BFC解决。