-
答案:JavaScript跨平台开发需解决浏览器兼容性问题,不同浏览器对语法、API和事件模型支持不一,尤其在旧版IE、Safari和移动端表现明显。应识别常见问题如ES6+特性、DOM方法、新API在老环境缺失,事件模型差异等;借助Babel转译、Webpack配合Polyfill补充缺失功能,通过Autoprefixer与Browserslist配置目标环境;运行时采用特性检测、添加polyfill、避免依赖特定行为,并注意Android旧版WebView差异;合理构建流程加运行时兜底可保障稳定运行。391 收藏 -
Modernizr检测具体特性而非HTML5整体支持,需同步加载于其他脚本前,通过Modernizr对象属性或html类名使用结果,但部分检测项(如serviceworker、geolocation)仅表静态存在,不保证运行时可用,须结合实际API调用验证。308 收藏 -
additionalData不生效主因是后缀与配置不匹配,应统一用.scss后缀并配css.preprocessorOptions.scss;运行时换肤需借力CSS自定义属性与JS动态设置,而非依赖Sass编译期注入。256 收藏 -
闭包是函数与其词法环境的组合,使函数可访问外部变量。它基于作用域链机制,如outerFunction内的innerFunction访问outerVar;应用于数据封装(createCounter)、模块创建(IIFE模块)、事件回调(handleClick);可能因引用大型对象导致内存泄漏,需及时解除引用;与作用域链紧密相关,延长了变量生命周期;应避免过度使用,注意性能和调试,可用开发者工具、debugger或console.log调试闭包。191 收藏 -
应使用数值写法(如900)替代bold,因数值更精准可控,可突破字体仅支持400/700的限制,实现更强加粗;但前提是字体文件必须包含对应字重,否则浏览器将降级显示。303 收藏 -
根本原因是浏览器对<img>加载的SVG进行光栅化处理而失去矢量特性;唯一可靠解法是内联SVG并配合viewBox与相对宽高实现原生缩放。148 收藏 -
构建评论区的表单时,通常使用 HTML 的答案:使用form标签构建评论区,通过textarea实现多行文本输入,设置name、rows、cols、placeholder、maxlength等属性优化交互,并结合CSS提升用户体验。485 收藏
Chrome等现代浏览器要求视频自动播放必须同时满足autoplay、muted和playsinline属性,否则因策略限制无法播放;用户手势是解除静音的唯一合规时机。322 收藏
:has()是CSS原生关系伪类,能基于子/兄弟元素状态反向匹配并样式化祖先元素(如div:has(.error)选中含.error的div),实现“父级条件样式”,但并非真正选择DOM父节点;它不支持嵌套、伪元素及部分动态伪类,Chrome105+/Firefox121+/Safari15.4+支持,性能开销较大,适用于表单验证等低频响应场景。154 收藏
resize是浏览器原生行为,直接写内联样式但不触发事件,JS无法自动感知变化;必须通过mouseup或requestAnimationFrame主动读取offsetWidth并同步到CSS变量。357 收藏
type="i"生成小写罗马数字(i、ii、iii),type="I"生成大写(I、II、III);二者仅大小写差异,HTML5中已过时,推荐用CSS的lower-roman/upper-roman替代。329 收藏
insertAdjacentHTML比innerHTML快,因其跳过序列化现有DOM的步骤,直接解析插入HTML字符串,不重建原有子节点;实测插入100条列表项时快2–4倍。483 收藏
param标签是为object等嵌入对象提供初始化参数的HTML元素,仅在对象实例化时生效,name和value属性成对定义参数,HTML5中已弃用type等旧属性,且该元素不参与渲染、不可动态修改。488 收藏
shape-outside必须与float同时使用才生效,缺一则无效;需配合width、height、display:block,并确保父容器未创建BFC(如flex/grid/overflow:hidden),否则文字不环绕。417 收藏
滑动指示器用transform而不用left或margin-left,因其触发硬件加速、动画更流畅;后者频繁触发重排,低端Android易卡顿;推荐用translateX和width过渡,配合requestAnimationFrame测量与CSS自定义属性动态计算位置。350 收藏