-
浮动元素脱离文档流导致父容器高度塌陷,clearfix技术通过伪元素::after配合clear:both使父容器感知浮动子元素,标准写法为.clearfix::after{content:"";display:table;clear:both}。
-
Array.prototype.sort()默认将元素转为字符串比较,导致数字数组如[10,2,1]排成[1,10,2];隐患包括NaN风险、大整数溢出、浮点精度误差;应使用显式条件返回-1/0/1,并对对象排序做空值处理与类型转换。
-
修改document.title最简单且兼容性最佳,而动态操作<meta>需精准增删、注意属性名与浏览器兼容性,SEO相关元信息须服务端输出才有效。
-
内联SVG作背景需URL编码并确保MIME前缀正确,外部SVG需服务器返回image/svg+xml,内联<svg>标签更适合交互场景;viewBox在dataURL中无效。
-
:first-child伪类选择父元素中第一个子元素,且该子元素需匹配指定选择器。例如p:first-child选中作为首个子元素的p标签;若首个子元素为其他类型(如h2),则p:first-child不生效,此时可用p:first-of-type选中首个p类型元素。样式应用需注意子元素实际顺序,:first-child基于位置而非类型,结合:first-of-type更灵活可靠。
-
IntersectionObserver怎么判断元素进入视口它不靠监听页面滚动事件,而是让浏览器在元素真正接近或进入视口时主动通知你——这意味着更少的重绘、更低的性能开销,尤其适合长列表或懒加载动画场景。关键点在于:必须手动给目标元素添加一个监听器实例,并指定threshold(触发阈值),比如0.1表示元素10%进入视口就触发回调;设为[0,0.5,1]则会在0%、50%、100%三个临界点各触发一次。常见错误现象:IntersectionObserver初始化后没调用observe()
-
双居中需根据布局方式选择方案:flex需display:flex+justify-content:center+align-items:center并设父容器高度;绝对定位需top:50%+left:50%+transform:translate(-50%,-50%);grid推荐place-items:center;margin:auto仅适用于宽高固定的块级子元素。
-
HTML表单本身不能“压缩”,所谓“压缩表单资源”实际是优化其依赖的外部资源(JS、CSS、HTML体积)和提交行为,不是对标签做某种编码压缩。为什么form标签没法被“压缩”HTML中的是语义化容器标签,浏览器不提供原生压缩接口,也没有标准规范定义“压缩后的form”。搜索中常误把“减小表单体积”“减少请求”“压缩JS/CSS”混为一谈。真正影响加载和交互性能的是:表单所用的JavaScript验证逻辑、CSS样式文件、内联脚本、以及提交时发送的数据量。常见错误现象:
-
解构赋值可通过嵌套结构、默认值、动态键名、函数参数解构、别名及剩余运算符等高级技巧提升代码可读性与开发效率,适用于处理复杂数据结构、配置项和API响应。
-
height:100%无效是因为父容器高度为auto,无计算基准;需逐级设置height:100%或改用min-height:100vh/100dvh,或通过absolute、flex:1、grid1fr等替代方案实现撑满。
-
background不生效因它非可动画简写属性,应改用background-color;渐变不支持平滑过渡,需用纯色层模拟;避免transition:all,注意移动端兼容性及硬件加速陷阱。
-
HTML无法预测学习完成时间,必须依赖JavaScript通过滚动行为、时间戳和localStorage等动态估算阅读进度与剩余时间。
-
Metarefresh能当短链接用但仅限极简场景,它不生成真实短域名、无统计防刷等功能,且需严格遵循HTML规范与服务器配置要求。
-
WeakMap和WeakSet通过弱引用避免干扰垃圾回收,适用于缓存、私有数据存储和对象标记场景,防止内存泄漏。
-
HTML元素渲染尺寸不一致的主因是浏览器对“相同尺寸”的解析与人不同,涉及默认样式、盒模型(content-box)、字体度量、基线对齐及内置边距等隐式影响。