-
CSS选择器应优先依赖HTML语义化标签、属性和伪类,而非class名;推荐深度≤3层的后代选择器,善用:is()、data-属性(限必要状态),避免过度嵌套与业务逻辑耦合。
-
.form-group间距不一致的根本原因是Bootstrap的margin设计基于独立块级元素流式排列假设,而真实表单常混用grid、flex、inline元素导致margin折叠失效或叠加。
-
img标签必须同时包含src和alt属性,src错误导致图片消失,alt缺失违反可访问性规范;路径需精确匹配,alt须具语义性;建议内联width/height防抖动,响应式用srcset+sizes或picture,懒加载加loading="lazy"。
-
必须在用户手势回调中调用play()并捕获Promise失败,pause()可随时调用;currentTime单位为秒但受缓冲和关键帧影响;volume(0–1)、muted(推荐静音)、playbackRate(影响音调)可实时修改;应监听loadedmetadata、timeupdate、ended等事件而非轮询。
-
JavaScript数组去重无唯一最优解,需据数据特征选方案:基础类型且需保序用Set+扩展运算符;对象数组须自定义比较逻辑;超大数组优先用Map/Object哈希表降为O(n)。
-
在Vite中推荐使用unplugin-vue-router自动生成路由表,它支持类型安全、自动导入和官方工具链深度集成;默认扫描src/pages目录,按文件路径生成对应路由,动态路由和嵌套路由均原生支持。
-
大型项目中直接写margin:16px会失控,因它非设计系统而是魔法数字;应统一用语义化间距变量(如@space-sm)、封装margin/paddingmixin,并避免在媒体查询中重定义变量或混用单位。
-
scrollHeight是唯一靠谱的依据,因其返回内容完整渲染所需最小高度,不受字体、缩放、换行符类型及CSSheight干扰;offsetHeight和clientHeight仅反映当前渲染尺寸,遇滚动条或溢出即失效。
-
String.fromCodePoint()不能通过“偏移量”生成组合Emoji,必须传入完整码点序列(如0x1F468,0x200D,0x1F4BB);组合Emoji是由基础字符、ZWJ(U+200D)、变体符等构成的多码点序列,非单个码点。
-
表格边框不显示或断开,主因是border-collapse默认为separate导致相邻边框重叠;应设collapse实现连续边框,或用separate+table单设外框并清除th/td边框。
-
原生HTML5拖拽排序需绑定dragover/drop到容器并用closest定位li、e.preventDefault()启用drop、getBoundingClientRect计算插入点、iOS降级处理、dataTransfer仅传ID。
-
本文解决轮播(carousel)中文字链接无法点击的问题,核心方案是通过CSS的pointer-events属性动态控制链接的交互状态,确保仅当前显示的文本项具备可点击能力。
-
最靠谱方案是使用成熟JS库而非手写HTML+CSS,因纯HTML无法实现动态交互;推荐markmap(Markdown自动生成)和jsMind(JSON驱动、轻量无依赖),二者均支持CSS定制且避免手动布局。
-
AngularJS由Google推出,已进入维护模式,适合旧项目维护;Vue由尤雨溪创建,持续活跃开发,适合新项目。1.AngularJS是完整框架,提供全套解决方案;Vue是渐进式框架,灵活扩展。2.AngularJS用脏检查实现双向绑定,性能较低;Vue用响应式系统(Proxy/Object.defineProperty),更新更高效。3.AngularJS模板依赖指令,组件化弱;Vue支持单文件组件,结构清晰。4.AngularJS学习曲线陡,需掌握作用域、Digest循环等;Vue语法直观,上手简
-
computed核心作用是基于响应式数据派生可缓存的响应值;购物车总价计算是典型应用,相比methods(无缓存)和ref(需手动更新),它自动追踪依赖、按需更新;支持深层响应性与多级依赖链。