-
夸克浏览器中dragstart事件不触发是因默认禁用HTML5拖拽,需设置draggable="true"、清除-webkit-user-drag:none等CSS、dragover中必须调用e.preventDefault(),且DataTransfer.items常为空应改用files或getData。
-
flex容器中文字垂直居中必须设置height或min-height,且文字所在元素须为flex容器的直接子元素;若为column布局,则需用justify-content:center实现垂直居中。
-
使用position:sticky可实现表头固定,需设置top:0、避免父元素overflow限制、提升z-index并添加背景色以防止内容透出,配合外层容器支持横向滚动,现代浏览器兼容性良好。
-
动态生成JavaScript代码可通过字符串拼接或模板构建,如根据配置生成表单校验逻辑:constcode=returnvalue.length>=${min}&&value.length<=${max}``;结合newFunction可动态执行,提升灵活性,但需防范安全风险。
-
应按设备能力分级控制动画:桌面端保留完整关键帧,移动端用@media(max-width:768px)延长animation-duration至1.8s,prefers-reduced-motion下设animation:none,禁用hover改用:active或touchstart,fixed定位用inset:0更稳,仅用transform/opacity触发GPU加速,JS需等document.readyState==='complete'及图片加载完成再触发,并及时remove开屏DOM。
-
box-sizing是控制width/height计算范围的开关:content-box仅含内容区,border-box包含padding和border;全局设border-box可避免布局溢出,但需覆盖伪元素,且margin始终不受影响。
-
闭包是函数与其定义时词法作用域的组合,本质是引擎保留对外层变量的引用而非拷贝;常见于内层函数逃逸原作用域并访问自由变量,如outer返回inner时count被持续持有。
-
按钮实现弹性拉伸需协同transition中的transform与border-radius:基础设固定px圆角(如12px),hover时同步缩放并增大圆角(如16px),配以cubic-bezier弹性缓动;文字防溢出用white-space:nowrap+min-width;伪元素阴影需移transform至其自身并设z-index:-1。
-
使用transform结合transition实现元素平滑移动到top:0;left:0;优先通过类切换触发动画,避免直接修改style属性,确保初始状态定义过渡效果以提升性能。
-
JavaScript数组空位是缺失值的语法表示,非undefined或null;for...in跳过空位,for...of视为空位为undefined;map/filter/forEach忽略空位,Array.from和扩展运算符将其转为undefined;JSON.stringify序列化为空位为null。
-
表单提交防连点需禁用按钮并恢复、用requestSubmit()替代submit()、服务端必须做幂等校验、移动端需合理处理回车提交。
-
dataTransfer.getData()取不到值的主因是dragstart未调用setData()或类型不匹配,且必须在preventDefault()后的drop/dragover中读取,类型名须完全一致,大小写敏感。
-
CSS中不存在“颜色选择器”,color是属性而非选择器;需用选择器选中元素后设置color等属性,注意优先级、继承、用户代理样式及color与background-color、opacity的区别,推荐使用CSS自定义属性统一管理颜色。
-
能,但需起始值和结束值均为可计算数值(如0px↔12px)、单位一致、正确声明transition且未被覆盖;JS修改时需强制重排或使用requestAnimationFrame避免动画中断。
-
align-items控制网格项在单元格内垂直对齐,justify-items控制水平对齐;二者生效需列/行有明确尺寸;align-content/justify-content仅在轨道总和小于容器时分配多余空间;align-self/justify-self可覆盖容器设置但有兼容性限制。