-
Canvas骨骼动画靠自行实现骨骼变换、顶点混合与插值逻辑,主流用requestAnimationFrame驱动+矩阵运算更新transform,配合save/restore或手动顶点计算绘制;SVG无原生骨骼支持,仅能通过<g>嵌套和JS/CSS驱动transform模拟简单层级,无法实现蒙皮、权重混合与IK。
-
margin:auto在flex容器中失效,因需满足块级元素、父为display:flex、未设flex收缩/拉伸属性等前提;常见因父容器未设align-items/justify-content或子元素被flex:1撑满导致无剩余空间。
-
拖放功能需满足三要素:设draggable="true"、dragstart中调用dataTransfer.setData()并preventDefault()、dragover中必须preventDefault();否则drop事件不触发。
-
position:static是默认值,元素按文档流排布且top/right/bottom/left/z-index无效;relative相对自身定位但不脱离文档流;absolute脱离文档流并相对于最近已定位祖先定位;fixed相对于视口固定;sticky在阈值内relative、超出后fixed。
-
支持,但需起始和结束状态均显式声明确定的颜色值(如HEX/RGB/HSL),避免transparent、inherit或简写background覆盖导致插值失败;transition须写在初始状态规则中,时长200–400ms,推荐cubic-bezier(0.25,0.46,0.45,0.94)。
-
ChromeDevTools里怎么精准模拟iPhone14的viewport直接用设备预设不等于真实效果,iPhone14在DevTools的设备列表里对应的是393×852像素(逻辑像素),但关键在devicePixelRatio必须设为3,否则媒体查询里的min-resolution:3dppx或min--webkit-device-pixel-ratio:3就不会触发。实操建议:打开DevTools→Toggledevicetoolbar
-
Flex通过flex-wrap和flex-basis间接控制列数,如calc(50%-1rem)实现两列、calc(33.333%-1rem)实现三列;Grid用repeat(auto-fit,minmax(280px,1fr))自动适配列数,需注意IE11回退及viewport设置。
-
Vite适合新应用开发,Webpack适用于深度定制和遗留系统,Rollup专精于库打包;三者底层依赖AST分析但抽象层级不同,选错会拖慢迭代。
-
引入CSS到HTML主要有三种方式,最推荐的是外部样式表,其次是内联样式在特定场景下使用;2.外部样式表通过<link>标签引入独立的.css文件,实现结构与样式的分离,便于维护、复用和缓存,适用于大多数项目;3.内联样式通过在HTML元素的style属性中直接写CSS规则,优先级最高且即时生效,适合快速调试、JavaScript动态修改、邮件模板或特殊覆盖需求;4.内联样式的优点包括优先级高、便于JS操作和即时反馈,缺点是可维护性差、无复用性、代码冗余、破坏分离原则且无法被浏览器缓存;5.外
-
能解决但不推荐,易导致文字裁切、脱离语义流、响应式错位及可访问性问题;应优先用flex+gap、伪元素content加引号、transform替代top偏移等现代方案。
-
WebWorkers是浏览器提供的后台线程API,用于执行CPU密集型任务而不阻塞主线程;其运行于隔离环境,无DOM访问权限,仅通过message机制与主线程通信,支持结构化克隆或Transferable零拷贝传输。
-
FinalizationRegistry用于在对象被垃圾回收时执行清理操作,典型场景包括管理C++插件分配的内存或文件句柄等非JavaScript资源,通过register注册目标对象及清理回调,利用unregisterToken可主动取消注册,避免资源泄漏。
-
老浏览器不显示HTML5新标签需用document.createElement()声明并补display:block样式,或引入html5shiv;必须在head中尽早执行且确保DOCTYPE正确。