-
最有效解法是正确使用.clearfix类:必须包含content:"";display:table;clear:both,且加在直接包裹浮动子元素的父容器上;单独写clear:both在父元素上无效,因clear只影响自身位置,不解决父容器无法感知浮动子项的高度塌陷问题。
-
直接删掉冗余的<div>和<span>比任何CSS/JS优化都有效;DOM节点超2000时,低端设备layout耗时呈指数级增长。真正拖慢渲染的是人为嵌套的“结构惯性”,如多层<div>套娃、误用<ul>渲染表单、SSR空wrapper、图标单独包层等;应优先用::before/after、gap、outline、语义化标签(如<fieldset>)替代;可通过document.querySelectorAll('*').length快速检测节点
-
@media(color-gamut:p3)仅检测设备P3能力,不触发颜色升级;要显示更鲜艳色必须用color(display-p3)函数配合@supports检测,并提供sRGBfallback。
-
autofocus仅对原生可聚焦且处于可交互状态的表单元素有效,如text、email、textarea、select、button等;在iOSSafari中静默失效,动态插入、隐藏、禁用或非可聚焦元素上均无效。
-
移动端分栏堆叠失效的根本原因是viewport缺失、父容器未设flex-wrap:wrap、子项使用固定宽或百分比硬编码;应改用flex:1或grid配媒体查询,配合max-width和响应式gap、line-height等。
-
return()方法是迭代协议中保障资源安全释放的关键机制,用于在迭代被提前终止时执行清理逻辑并返回{value:any,done:true}。
-
响应式系统SSR“注水”报错本质是客户端激活时DOM结构、文本或节点顺序与服务端输出不一致,导致丢弃HTML重渲染;关键在于确保两端渲染结果严格一致,需统一初始数据、隔离请求状态、规避环境敏感逻辑、校验VNode结构。
-
基准条件是递归函数安全返回的唯一出口,必须覆盖所有输入终点且参数须单调趋近;如阶乘中n==0或n==1因数学定义和不可分性成为正确基准,错写将导致失控递归。
-
textarea+input实时校验更可靠,因HTML表单pattern仅提交时触发原生提示,而实时监听input事件可即时反馈;需截断长文本、禁用默认提示、动态构造正则时正确转义特殊字符,并避免回溯爆炸。
-
CSSStyleSheet构造函数是用于创建可复用样式表对象的API,但截至2024年底仍属实验性功能,仅Chromium系浏览器在开启实验标志后部分支持,Safari和Firefox完全不支持,直接调用newCSSStyleSheet()会抛出TypeError,生产环境应使用style元素的sheet属性安全获取真实CSSStyleSheet实例。
-
Chrome下input[type="search"]清除按钮需四行CSS才能彻底隐藏:先重置-webkit-appearance:textfield,再分别禁用::-webkit-search-cancel-button、::-webkit-search-decoration和::-ms-clear伪元素,否则会出现残留、留白或错位。
-
indent-8不起作用是因为TailwindCSS默认不提供text-indent工具类,需通过自定义配置(如theme.extend.textIndent+插件)或内联样式等方式手动启用。
-
通过封装可复用组件和使用@apply提取公共类,将重复的Tailwind类名集中管理,提升代码可维护性与开发效率,实现高效组件复用。
-
WebWorkers无法直接操作DOM,因运行在独立线程且无document、window等API,只能通过postMessage与主线程通信;支持console、fetch、ArrayBuffer等,不支持localStorage、XMLHttpRequest;需注意结构化克隆限制、同源脚本要求及SharedArrayBuffer使用门槛。
-
直接触发BFC可解决非浮动元素被浮动元素遮挡问题:给被遮挡元素加overflow:hidden或display:flow-root,使其避开浮动区域;overflow:visible不触发BFC,且避免滥用overflow:hidden导致弹窗裁剪。