-
用contain:layoutpaint或contain:strict可实现局部重绘,但需容器尺寸稳定、子元素不越界且浏览器支持;contain:layoutpaint最常用,strict隔离最强但要求明确尺寸和定位约束。
-
:nth-child(3n+1)选择DOM序号为1、4、7…的元素,与视觉排列无关;其生效需满足HTML线性、列数固定、无隐藏/插入元素等条件,否则易错位;可靠方案是用Grid定位而非依赖序号。
-
CSS变量管理主题色是最灵活易维护的方案,通过语义化命名(如--color-primary)、全局定义、组件引用、多主题切换(class或JS控制)、fallback默认值及局部重写实现高效主题管理。
-
使用objectStore.add()插入新记录需确保数据库已打开、事务为readwrite模式、正确获取objectStore,并传入符合键路径(keyPath)、自增(autoIncrement)或显式键要求的数据;成功返回主键,冲突触发ConstraintError。
-
Safari表单原生验证弹层需三法并用才能禁用:form加novalidate、input加oninvalid="this.setCustomValidity('')"、oninput中同步调用setCustomValidity(''),否则blur时仍会触发阻断式弹层。
-
推荐用class控制样式:CSS预设类,JS用classList.add/remove/toggle切换;其次可用element.style(驼峰命名、不可简写)或CSS变量setProperty动态更新;避免拼接style字符串或setAttribute('style')。
-
必须显式设置background-color和color才能有效改变mark样式,仅设color无效;需满足WCAGAA对比度(≥4.5:1),并适配深色模式,避免XSS与语义滥用。
-
defineProps是Vue3中用于在setup顶层声明并类型安全接收父组件props的编译时宏;必须同步声明、不可解构、不可修改,配合defineEmits实现单向数据流。
-
HTML5代码需保存为.html/.htm文件才能正常运行;localStorage可持久化保存字符串数据,sessionStorage仅限当前标签页;Blob可将动态HTML导出为本地文件。
-
通过设置CSSpointer-events:none禁用子元素的指针事件捕获能力,使拖拽事件(如dragenter/dragleave)直接由容器捕获,避免因子元素覆盖导致的频繁触发与状态错乱。
-
纯HTML无法实现倒计时,必须用JavaScript实时计算时间差并更新DOM;正确做法是固定目标时间戳,每次用Date.now()重算差值,避免递减变量,合理清理定时器并注意时区问题。
-
HTML文件需先格式化再diff,否则90%差异为格式噪音;推荐tidy或prettier标准化,浏览器端用diff2html可视化,语义级对比须用lxml或html5lib解析DOM树。
-
Autoprefixer结合Gulp可自动为CSS添加浏览器前缀,提升兼容性与开发效率。通过npm安装gulp、postcss、autoprefixer后,在gulpfile.js中配置css任务调用autoprefixer插件,并使用overrideBrowserslist或.browserslistrc文件指定目标浏览器范围,如>1%、last2versions;watch任务监听src/css/目录下的CSS文件变化,自动重新编译并输出到dist/css目录。推荐使用.browserslist
-
h1到h6的语义层级由HTML文档大纲决定,而非CSS样式;必须严格按嵌套顺序递进使用,避免视觉与语义错位,单页应用中宜用section/article包裹独立h1,隐藏h1需用clip-path等可访问方式,内容须简洁唯一、不可为空或含未解析变量。
-
innerHTML非万能,createElement非慢;批量插入需防重排,避免循环赋值;表单控件用innerHTML会丢失状态;小量节点createElement更快;DocumentFragment可避免多次重排;读布局信息须缓存;textContent更安全高效但不支持HTML。