-
HTML5表单需结合语义化结构、原生验证、CSS状态样式、ConstraintValidationAPI脚本控制、placeholder/datalist引导及移动端适配。
-
原生HTML无法实现多规格联动选择,必须配合JavaScript;关键在于HTML结构设计:用<fieldset>分组、<inputtype="radio">或<button>作为选项,添加data-spec和data-value属性,避免中文判断与硬编码映射。
-
let和const因TDZ与块级作用域禁止重复声明,var则函数提升且无块作用域导致变量泄漏;TDZ使未初始化前访问报ReferenceError,函数参数默认值中引用自身也受此限。
-
:has()是目前唯一能根据后代内容反向选择父级的原生CSS方案,但仅支持可选中子元素(不能匹配纯文本节点),需配合语义class或data属性使用;文本匹配应优先通过JavaScript添加class或直接用属性选择器(如[data-action="submit"])实现,避免依赖易变的文本内容。
-
现代浏览器自定义滚动条需分WebKit(Chrome/Edge/Safari)和Firefox两套方案:前者用::-webkit-scrollbar伪元素,仅对overflow溢出的块级容器生效;后者用scrollbar-width和scrollbar-color,且color仅在width为auto或thin时生效。
-
Html5-QRCode是省事、兼容性好、识别率够用的方案;jsQR仅解码,需额外处理视频流、权限、降级等数十行胶水代码,移动端易黑屏卡死且无文件上传fallback。
-
响应式表格小屏转卡片需语义打散并用flex重排,关键在为td添加data-label属性并通过媒体查询控制display值,保留表格结构以保障可访问性与SEO。
-
let和const均为块级作用域、不提升、不可重复声明,区别仅在于是否允许重新赋值;var因函数作用域和变量提升易引发闭包、作用域泄露等问题,应避免使用。
-
本文介绍一种高效、非递归但逻辑等价于递归的算法,将扁平的节点数组按parent-id关系构建成嵌套的树形结构,适用于文件系统、菜单、组织架构等场景。
-
支付页面需防误操作、保状态、抗重放、可访问:提交时禁用整个表单并设aria-disabled;服务端必须幂等校验;确认页须reset表单、移除监听器、replaceState;成功页订单号应入URLpath并服务端渲染,缓存头设为no-store。