-
offset-rotate默认值auto表示按路径切线方向旋转,非“智能适配”;常见失效因offset-path未生效、浏览器不支持(Firefox不支持)、折线路径切线突变导致跳变,调试需检查样式生效、固定offset-distance测试、JS验证角度匹配。
-
语义化按钮首选<button>而非<div>或<a>伪装;必设type属性;仅允许phrasingcontent嵌套;禁用时同步视觉反馈;移动端需处理300ms延迟与点击穿透。
-
text-shadow多层叠加才是立体感的关键:单层仅能实现浮雕或发光,真3D需3层以上模拟光源与景深,按“高光→主影→深影”顺序书写,推荐rgba控制自然衰减,避免超4层以防移动端性能抖动。
-
正确设置UTF-8编码、使用lang属性标识语言、通过dir属性控制文本方向、选用支持多语言的字体如NotoSans,并结合CSS处理特殊排版与断行,可实现HTML多语言文本的良好显示与兼容。
-
大屏留白过多主因是栅格列数未随宽度增长,12列在2560px下每列仅213px且间隙固定,导致密度下降;需按断点阶梯式增加列数(1440px→16列、1920px→24列)、缩间隙、扩字号(用clamp)、调行高、控滚动条与全宽容器。
-
纯静态Changelog页面应使用语义化HTML结构:每个版本用<section>包裹,<h2>或<h3>标注带id的版本号(如#v2.1.0),变更项用<ul><li>列出,前缀图标(如✨、?)提升可读性;禁止<pre><code>日志dump,须人工或脚本生成结构化内容,并通过哈希注释或文件名版本控制缓存。
-
innerHTML批量插入需一次性赋值完整HTML、严格转义用户输入、用事件委托绑定动态元素,并保留原容器属性。错误做法包括循环累加、未转义拼接、直接绑定事件或替换outerHTML。
-
lvh/svh是CSS新增视口单位,lvh表示不考虑软键盘的最大可用高度,svh表示键盘弹出时的最小可用高度;相比100vh,它们原生响应键盘状态,避免iOS底部fixed元素被遮挡及安卓高度突变问题。
-
ES6模块与CommonJS在语法、加载机制和使用场景上存在差异。1.语法方面,ES6使用静态的import/export,支持命名和默认导出;CommonJS使用动态的module.exports和require,常见于Node.js。2.加载机制上,ES6模块为编译时加载,利于静态分析和tree-shaking;CommonJS为运行时加载,支持条件引入。3.浏览器原生支持ES6模块(通过type="module"),而CommonJS主要用于Node.js环境,新版Node.js也支持ES6模块。4
-
dash.js需配合正确HTML与配置才能实现DASH自适应播放:MPD须HTTPS提供且响应头含application/dash+xml,移动端需video标签添加muted、playsinline及viewport限制,容器须用aspect-ratio或padding-bottom维持宽高比,video设object-fit:cover防拉伸。
-
用双层Map实现命名空间隔离的EventBus,第一层以namespace为key,第二层以eventtype为key存储回调数组;addListener、emit、off均需传入namespace参数确保隔离性。
-
后端应返回结构化JSON,含items、has_more、next_offset字段;前端用insertAdjacentHTML('beforeend',htmlString)追加内容,禁用按钮防连点,并配合loading状态与错误提示确保交互稳定。
-
reduce()未提供初始值时存在三类隐患:空数组抛TypeError、单元素不执行回调、首项类型主导后续计算;应始终显式传入合理初始值以确保行为可控。
-
JavaScript闭包绑定特定参数的本质是利用函数能“记住”其创建时外部作用域的变量;2.当内部函数引用外部函数的参数或变量时,这些变量被闭包捕获并长期持有,即使外部函数已执行完毕;3.最直接的方法是通过外部函数接收参数并返回内部函数,使内部函数形成闭包从而绑定参数,如createAdder示例中addFive和addTen分别绑定了5和10;4.Function.prototype.bind()方法可显式绑定函数的this上下文及部分参数,返回一个预设参数的新函数,适用于回调场景;5.绑定参数常用于事
-
可用Set配合useEffect轻量可靠跟踪组件挂载状态,避免卸载后更新状态等错误;因Set支持多组件独立追踪、线程安全,而布尔值易在并发场景出错。