-
manifest属性已废弃,Chrome94起彻底移除支持;ServiceWorker是唯一可行的离线缓存方案,需HTTPS环境下用navigator.serviceWorker.register()早期注册,注意生命周期、缓存策略与调试要点。
-
在jQuery的submit事件处理器中调用$(form).submit()会再次触发绑定的事件监听器,导致无限递归;正确做法是缓存表单DOM元素并调用其原生submit()方法,绕过jQuery事件系统。
-
正确处理Flexbox溢出需结合overflow:hidden与flex属性,关键在于设置子元素min-width:0、flex:1及text-overflow:ellipsis,确保内容可收缩且文本溢出时截断,尤其在嵌套布局中更应规范使用以避免撑开容器。
-
利用CSS的gap属性配合Flexbox或Grid布局,可轻松实现响应式卡片间距自适应。1.使用Flexbox时,设置display:flex、flex-wrap:wrap和gap,再通过flex:11calc()定义卡片尺寸,实现自动换行与间距均匀;2.使用Grid时,设置display:grid、gap和grid-template-columns:repeat(auto-fit,minmax()),由浏览器自动计算列数并保持间距一致。相比传统margin方案易出现行尾错位、需复杂媒体查询等问题,gap
-
最可靠方式是用matchMedia('(prefers-color-scheme:dark)')监听系统暗色模式,它响应系统设置、不受时区和时间不准影响;手动切换需用themeMode状态隔离自动逻辑,并通过document.documentElement.classList切换class实现样式控制。
-
list-style-position取值决定标记与文本的排版关系:outside使换行文本左边缘不对齐首行,inside则侵占内容区宽度并影响盒模型;二者在响应式或嵌套场景易致视觉错位,需手动补偿或改用语义化替代方案。
-
navigator.clipboard.writeText()报“Permissiondenied”是因为未在用户手势(如点击)触发的HTTPS/localhost环境中执行,或iframe缺少相应sandbox和allow权限。
-
AJAX天然支持异步请求,问题源于XMLHttpRequest.open()第三个参数设为false导致同步阻塞;正确做法是设为true并配对onreadystatechange与readyState===4且status===200判断;现代推荐使用默认异步的fetchAPI。
-
EdgeLegacy(≤79)完全不支持datalist,因其EdgeHTML引擎从未实现该HTML5规范,输入框无下拉建议、DOM忽略datalist、JS无法获取list属性,须用JS模拟下拉组件。
-
元素宽高异常很可能是position:absolute导致脱离文档流;需检查是否设置了absolute及最近定位祖先,通过开发者工具验证布局,修复时应显式设置宽高或调整定位上下文。
-
防止XSS的关键是正确处理用户输入输出。应对用户输入进行白名单验证并限制格式,前端后端均需验证;在插入HTML时对动态内容进行HTML编码,转义特殊字符如<为<。
-
rgba透明度叠加变灰是因底层颜色参与上层alpha混合,属CSS合成正常行为;推荐用伪元素单层rgba、backdrop-filter隔离或color-mix适配深色模式。
-
代码分割是将JavaScript打包成多个小文件的技术,通过Webpack等工具实现按需加载;结合动态导入import()语法可延迟非关键资源加载,显著减小首屏体积、提升性能,但需避免过度分割导致请求过多,应合理划分模块并利用预加载优化体验。
-
JavaScript路由切换核心是不刷新页面改变URL并更新视图,依赖HistoryAPI(pushState/replaceState)和popstate事件监听,或Hash模式的hashchange事件,本质是路径字符串到渲染逻辑的映射。
-
hsla()是CSS中基于色相、饱和度、明度和透明度定义颜色的函数,参数依次为0–360的色相角度、0%–100%的饱和度、0%–100%的明度及0–1的透明度小数,比rgba()更便于调整颜色变体。