-
直接双击打开index.html会因file://协议限制导致fetch、ServiceWorker、相对路径资源加载失败,页面白屏或样式丢失;必须通过本地HTTP服务器(如VSCodeLiveServer)运行才能正常预览。
-
JavaScript是单线程语言,依靠事件循环、任务队列和宿主环境(如浏览器或Node.js)的异步能力处理异步操作;微任务(如Promise.then)在宏任务后立即执行,宏任务(如setTimeout)需等待下一轮事件循环;WebWorker可实现多线程但不改变JS单线程本质。
-
closed模式无法实现真正封装,仅使shadowRoot返回null,却无法阻止调试工具查看、测试框架访问或无障碍检测,且易引发逻辑错乱;可靠封装需依赖open模式下的样式隔离、事件边界与slot分发等主动设计。
-
event.persisted===true是页面状态需抢救的唯一可信信号;它在pagehide中标识bfcache或冻结,pageshow中需校验该值及localStorage存在性才恢复,且仅同步可序列化字段。
-
Less运行时主题切换需通过@themesMap+each()生成CSS变量并用.theme-mixin()封装调用,避免多文件维护、变量覆盖及条件分支不可靠问题,构建工具须监听themes.less变更。
-
backdrop-filter在旧浏览器中不生效是因未实现该特性,需用rgba()降级色并配合@supports检测,同时避免overflow:hidden、添加-webkit前缀及合成层优化。
-
scroll-padding在固定导航栏下跳转遮挡标题,因其默认作用于根容器且不自动补偿导航栏高度;需在滚动容器设scroll-padding-top(如calc(64px+env(safe-area-inset-top))),动态高度需JS更新;可与scroll-snap-type共用但需注意Safari优先级问题;Safari15.4+存calc+env首次失效bug,Firefox不支持逻辑属性缩写。
-
本地HTML联网运行需避免file://协议限制,推荐五种方案:一、Python内置服务器;二、Node.js的http-server;三、VSCodeLiveServer插件;四、Chrome启用--allow-file-access-from-files参数;五、GitHubPages+Jekyll本地预览。
-
“不自然”源于缓动函数、起止值或触发时机未对齐;应统一使用cubic-bezier(0.25,0.46,0.45,0.94),scale起始设0.9–0.95、终点为1、中段可微弹至1.02,opacity起点禁用visibility:hidden,需配合pointer-events:none,并添加will-change:opacity,transform提升GPU渲染。
-
在HTML表单中为重置按钮添加确认提示,可以通过结合HTML和JavaScript实现。1)使用onclick事件和confirm函数直接在重置按钮上添加确认提示;2)将JavaScript逻辑从HTML中分离,提高代码可维护性;3)使用自定义模态框替代标准confirm对话框,增强用户体验;4)添加ARIA属性,确保无障碍访问。
-
2026年前端架构师晋升核心是决策颗粒度与可验证性:需将技术选型转化为可度量业务结果,以连接层能力复盘,绑定三年演进预案完成度,并构建人机校验闭环及反事实推演。
-
卡片悬停反转卡住需开启3D上下文:父容器设perspective,卡片设transform-style:preserve-3d;避免translateZ引发模糊,优先用rotateY+backface-visibility;transition须写在默认样式中;IE/Safari旧版应降级为opacity切换。
-
最简纯前端文件选择控件为<inputtype="file"id="fileInput">,支持accept、multiple、required等属性,id必需以便JS获取;默认样式不可深度定制,::file-selector-button仅Chrome98+较好支持。
-
border-radius是“切掉盒模型四个角的矩形区域”,作用于border-box边界内;若父容器overflow:hidden或元素为inline且未设display,圆角可能失效;值越大越圆滑,建议≥border-width的1.5倍。
-
filter支持CSS过渡动画,但必须显式声明transition:filter0.3sease;若仅写transition:all或未定义初始filter值,动画将失效,且多滤镜叠加顺序影响渲染结果。