-
老旧浏览器访问现代网页需兼容处理:一、启用IE兼容模式;二、注入HTML5Shiv支持语义化标签;三、用Babel转译ES6+语法并加载core-jspolyfill;四、对现代API做特征检测与降级回退。
-
核心是通过抽象接口、运行时注入和工厂模式实现跨平台:定义Toast/Storage/Router等平台无关接口,各平台提供具体实现并由工厂注册,启动时注入全局上下文,组件无感调用,支持动态切换与灰度验证。
-
CDN引入适用于简单项目,通过link标签引入CSS,如ElementPlus;2.npm安装后全局引入,便于版本管理;3.按需引入推荐用于大型项目,结合插件自动导入组件及样式;4.使用SCSS变量定制主题,先定义变量再引入组件库样式,实现个性化主题。选择方式应根据项目规模与性能需求决定。
-
应改用performance.getEntriesByType('navigation')获取PerformanceNavigationTiming实例,因其基于timeOrigin、精度高、语义清、兼容好;旧timing已弃用且字段不可靠。
-
JavaScript的class是原型继承的语法糖,其本质仍依赖prototype、__proto__和原型链;class声明将方法挂载到prototype,extends通过设置__proto__实现继承,所有特性均可用ES5原型写法复现。
-
关键不是压缩CSS体积,而是让浏览器尽快获取首屏所需CSS;需用media属性条件加载、动态导入非首屏样式、避免@import、合理分割CSS、删除冗余选择器、谨慎内联并控制体积在2KB内。
-
iPad上requestAnimationFrame卡顿主因是iOSSafari节流,需验证performance.now()间隔;canvas须按DPR重设宽高并缩放;CSS动画需确保元素已布局且避免opacity+visibility隐藏;WebGL需检查帧缓冲、生成mipmap并适配芯片。
-
navigator.clipboard.writeText()写入失败的常见原因包括:非安全上下文(非HTTPS且非localhost)、非用户手势触发、异步延迟调用、iframe缺失allow="clipboard-write"属性、浏览器权限静默拒绝、文档未聚焦或标签页非活跃,以及Safari等浏览器需额外权限声明或不支持。
-
步骤条跳转逻辑由父组件状态和业务规则控制,Emit仅传递点击意图;父组件校验后更新currentStep并加载数据,推荐用v-model封装以保持子组件纯粹。
-
浮动影响响应式布局主要因破坏文档流导致父容器塌陷、小屏换行错乱,且依赖固定宽度难以自适应;需额外清除浮动,维护成本高。相比之下,Flexbox与Grid支持自动伸缩、对齐和二维布局,更适配响应式需求,推荐优先使用。
-
vertical-align对inline-block有效但对flex容器无效,因后者由align-items控制垂直对齐;text-align仅作用于文本内容,justify-content才控制flexitem主轴分布;inline-flex宽度不足时justify-content失效,需显式设宽或改用flex。
-
WebComponents是浏览器原生API,含CustomElements、ShadowDOM和HTMLTemplates三部分;CustomElements需用短横线命名并继承HTMLElement;ShadowDOM提供样式封装,支持::part()和:host暴露接口;template内容需cloneNode使用,内联脚本不执行。
-
目前没有任何浏览器原生支持contrast这类CSS颜色函数,它仅存于早期草案中且从未落地;所谓“自动对比色”需开发者手动计算背景亮度并切换文字颜色,核心逻辑是判断背景明暗后选择白或黑文字。
-
importNode是Document对象方法,须通过document.importNode()调用,不可直接使用;报错多因上下文错误或IE兼容问题;深拷贝由第二参数控制,跨文档导入需严格匹配源节点所属文档。
-
使用position:sticky结合Flexbox或CSSGrid可高效实现响应式侧边栏滚动吸附,通过设置top值使侧边栏在滚动时固定,利用flex或grid布局实现主内容与侧边栏自适应排列,并在小屏通过媒体查询关闭sticky以优化体验。