-
Vue的Diff是策略性增量比对,非全量O(n²)比对;Patch是diff结果的自然执行,仅作用于判定变更的节点及必要子树,通过双端剪枝、key映射、v-memo实现三层收敛优化。
-
disabled元素的值不提交,readonly元素的值正常提交;readonly仅对text、password、textarea有效,select和checkbox等不支持;disabled支持fieldset批量控制且语义更明确。
-
用<inputtype="text">配合<datalist>可实现颜色值下拉提示,需确保list属性与datalist的id一致,<option>的value填合法CSS颜色值,文本内容仅作显示参考。
-
filter+transition可实现平滑切换,但需确保函数形式一致(如grayscale(100%)↔grayscale(0%))、避免与transform共存、统一字符串格式并适配prefers-reduced-motion。
-
绝对定位子元素不占位,完全脱离文档流,父容器计算尺寸时无视其存在;需为父元素设置position:relative等非static定位才能建立定位上下文,否则偏移参考祖先或body。
-
Word打印图片缺一部分的根本原因是打印区域未包含完整图片,常因浮动锚点错位、HTML像素值与打印DPI不匹配或打印机驱动渲染异常所致。
-
写屏障解决年轻代GC漏标老年代指向年轻代引用的问题,通过在老→年写操作时标记对应卡表为脏,配合记忆集实现高效跨代引用追踪。
-
nav标签用于定义页面的主要导航区域,应使用语义化的ul和a标签构建导航结构,1.使用nav包裹导航链接列表以提升语义化和可访问性;2.通过CSS移除列表默认样式并设置flex布局实现水平排列;3.利用媒体查询和JavaScript实现响应式汉堡菜单;4.遵循清晰标签、一致样式、键盘可访问、高亮当前页等最佳实践;5.推荐使用aria-current="page"标识当前页面,确保导航在不同设备和辅助技术下均具备良好体验,最终提升SEO与用户体验。
-
现代分屏应优先用CSSGrid替代废弃的frameset和易跨域的iframe;同源iframe需设宽高、lazy加载、overflow:hidden;跨域通信必须用postMessage并校验origin。
-
自定义元素命名必须含连字符且全小写,如date-picker;constructor仅初始化,DOM操作须在connectedCallback中执行;样式必须注入ShadowDOM;attributeChangedCallback需配合observedAttributes监听属性变更。
-
download属性仅对同源链接生效,跨域、BlobURL等场景会失效;真正可控的下载需用URL.createObjectURL配合a.download,或服务端设置Content-Disposition:attachment响应头。
-
顶部公告条需用position:fixed悬浮,body加padding-top避免遮挡,移动端适配box-sizing和内边距,localStorage持久化关闭状态,支持随机/轮播文案,兼容IE11与无障碍访问。
-
原生<inputtype="month">兼容性差、样式不可控、无校验和范围限制;推荐用flatpickr(12KB,支持月视图/本地化/禁用逻辑)或手写双下拉(年+月select)实现可靠月选择器。
-
background-attachment:fixed在iOS和多数安卓WebView中被浏览器主动禁用以保性能,伪元素+position:fixed是可靠替代方案,需设top/left/right/bottom为0、z-index:-1、background-size:cover与center配合,并避免transform/filter干扰。
-
HTML5通过async和defer属性优化脚本加载:async适用于独立脚本(如统计代码),下载不阻塞解析但执行时机不确定;defer适用于依赖DOM的脚本(如轮播图),按顺序在DOM解析后执行;二者均不解决图片压缩、CSS阻塞等其他性能问题。