-
: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)、字体度量、基线对齐及内置边距等隐式影响。
-
WebSocket是JavaScript实现实时通信最常用方式,基于单个TCP连接实现全双工、低延迟双向通信;需监听onopen、onmessage、onerror、onclose事件,用JSON收发结构化数据,并手动实现带重试限制的自动重连,注意wss://与HTTPS匹配及跨域服务端校验。
-
HTML5标准本身不提供色彩平衡API;实际需通过Canvas2D像素操作(如getImageData分段调整RGB)或CSSfilters近似模拟,二者精度与能力差异显著。
-
word-break:break-all有时无效,因父容器缺宽度约束、Flex子项未设min-width:0或被white-space:nowrap禁用换行;它适合技术字段,而用户可见文本应优先用overflow-wrap:break-word。
-
加版本号参数无法刷新CSS缓存的本质是服务端返回304或浏览器直接读本地缓存;应使用构建工具生成contenthash文件名(如main.a8f3b.css)并确保HTML引用、@import路径、HTTP缓存头同步更新。