-
用border画三角形可行是因为浏览器渲染时相邻边交界处自动形成斜角,当元素宽高为0且仅单边有色、其余三边transparent时,该斜角即呈现为等腰直角三角形;这是CSS规范行为,现代浏览器均稳定支持。
-
@layer优先级由源码中声明顺序决定,第三方样式未包装则落入隐式顶层并高于所有显式层;必须用@importurl()layer()显式导入框架到指定层,且@layer声明须在顶层、不可嵌套。
-
place-content不能居中模态框,因其仅控制多行/列轨道组在容器内的对齐;模态框通常单子项且无显式多轨,故无效;应改用place-items:center(父设display:grid)或position:fixed+transform降级。
-
HTML不是编程语言而是标记语言,核心是用语义化标签合理组织内容结构,需通过实操理解标签使用时机,而非死记语法;属性书写须规范,表单校验有边界,脚本加载策略影响DOM操作与性能。
-
backdrop-blur无效需先确认Tailwind≥3.1并在config中启用backdropBlur;侧边栏需半透明背景(如bg-white/10)、父容器无overflow:hidden,且背后有可模糊内容;iOS和微信需兼容处理。
-
ServiceWorker的message事件不支持直接回复,必须用MessageChannel实现双向通信:主线程创建通道并transferport2,SW通过event.ports[0]回复;不可用self.clients.matchAll()伪双向。
-
词法作用域在函数定义时就确定了,变量可访问性取决于代码书写位置而非调用位置;作用域链在函数创建时固化于[[Environment]]中,沿词法嵌套逐级向上查找,与调用栈无关。
-
SVG描边动画需用stroke-dasharray与stroke-dashoffset配合,先调用getTotalLength()获取路径精确长度,再通过CSS动画控制偏移实现“一笔一划”效果;getBBox()仅返回包围盒尺寸,不适用。
-
借用构造函数继承能避免引用类型属性共享,因为每次创建子类实例时都通过call/appl调用父类构造函数,为每个实例独立初始化属性;而原型链继承会使引用属性挂载在原型上被所有实例共享。
-
Vue3的setup中不可用$filters,因其是Vue2实例属性且全局过滤器已被弃用;推荐改用纯函数封装(如formatDate)、模块导出并在setup中直接导入使用。
-
IIFE是旧项目中零配置的作用域隔离手段,通过函数作用域切断变量声明、事件绑定、定时器等副作用外溢,确保不污染全局命名空间,所有声明默认私有,全局对象需显式传入。
-
给HTML表格添加富文本编辑功能的核心在于嵌入或动态加载富文本编辑器,而非依赖表格本身。实现步骤包括:1.设置表格单元格为contenteditable="true";2.引入富文本编辑器库如TinyMCE、CKEditor等;3.监听点击事件初始化编辑器实例;4.同步编辑内容回填至单元格;5.编辑完成后销毁或隐藏编辑器。选择编辑器时需考虑项目需求与团队能力:TinyMCE适合企业级应用;CKEditor适用于深度定制和协作编辑;Quill适合性能和自定义要求高的场景;ProseMirror/Slate.
-
用watchEffect实现视频播放自动存档,关键在于通过ref同步currentTime并在watchEffect中读取以触发依赖追踪,结合onInvalidate清理定时器、节流存档、AbortController中止旧请求、时间戳防竞态及isSaving/saveError状态反馈确保可靠性。
-
最直接的跳转方式是window.location.href,立即卸载当前页并加载新URL;标签更安全且语义化;window.location.replace()可避免返回记录;SPA中应使用框架路由API而非直接操作location。
-
join()方法用于将数组元素拼接为字符串,而非合并数组;合并数组应使用concat()或扩展运算符...,如[...arr1,...arr2]。