-
核心是用classList.toggle()切换预设类名并由CSStransition实现渐变,配合requestAnimationFrame节流和window.scrollY阈值判断,避免强制同步布局,确保性能、维护性与兼容性。
-
父容器高度塌陷是float设计机制所致,解决关键是让父容器重新感知子元素尺寸:现代推荐display:flow-root触发BFC,兼容老浏览器用.clearfix::after伪元素,慎用overflow:hidden;clear应加在需换行的后续兄弟元素上,非浮动元素自身;长期应优先采用flex或grid布局替代float。
-
<progress>标签仅表示已知范围内的完成度,需手动用JavaScript更新value值以反映真实进度;无进度数据时应使用spinner等加载指示器,而非强行使用<progress>。
-
inline-block元素间存在空隙是HTML解析器将换行与空白符作为空文本节点渲染所致,并非bug;需通过font-size:0、注释或单行书写消除,同时须设置vertical-align控制对齐,且注意换行与宽度计算问题。
-
卡片悬停上浮最稳方案是transform:translateY(-8px)配合transition:transform.2s–.3scubic-bezier(.4,0,.2,1),避免重排、兼顾性能与手感,需注意热区连续性、移动端优化及多卡片场景兼容性。
-
本文介绍一种纯CSS解决方案,通过结构化HTML和相邻兄弟选择器(+),实现“仅在鼠标悬停于某节点时显示其直属.info-on-parent-hover子元素”,彻底避免祖先、后代或同级节点的提示信息误显。
-
默认content-box下width仅指内容区,padding和border额外增加总宽;切换border-box后width表示总宽,padding和border向内压缩。
-
直接使用公共CDN加载Vue等库可减少打包体积200–500KB、提升首屏速度、降低服务器负载;需配置webpackexternals并在index.html中引入对应CDN链接,注意版本一致、开发与生产差异化处理及CDN降级方案。
-
Tree-shaking未生效主因是模块格式与打包器分析能力不匹配:需确保ESM规范、避免CommonJS混用、精准导入子路径、检查sideEffects声明及导出方式,并在production构建后通过stats或可视化工具验证。
-
Retina屏背景图清晰需用@2x图+mediaquery+background-size:准备icon.png与icon@2x.png,通过(-webkit-min-device-pixel-ratio:2)或(min-resolution:2dppx)切换,并设background-size为逻辑尺寸。
-
表单提交必须首行调用event.preventDefault();FormData默认忽略未选中/空字段;fetch传FormData时勿手动设Content-Type;验证优先用reportValidity()兜底但需JS增强提示。
-
z-index不生效主因是未理解层叠上下文:z-类直接映射z-index数值,但仅在同层叠上下文中有效;父元素无z-index或含transform等属性会创建新上下文,使子元素z值失效。
-
display:none彻底移除元素的文档流位置,不占空间、不响应事件、子元素消失且不可被屏幕阅读器访问;visibility:hidden保留占位但视觉隐藏,支持过渡动画且子元素可穿透显示。
-
JavaScript设备指纹需组合navigator、screen等只读属性,优先选取稳定、跨域可读且不触发权限弹窗的字段;避免已失效的plugins/mimeTypes,慎用降级的userAgent,推荐platform、hardwareConcurrency、screen尺寸配合devicePixelRatio;userAgentData受限于授权与兼容性,仅作补充;隐私模式下colorDepth、字体API等可能被篡改或禁用;HTML结构宜用语义化dl列表组织,字段ID需唯一带前缀,动态时间字段应哈
-
WebPushpayload必须使用AES-128-GCM加密,由客户端提供的auth和p256dh派生密钥,浏览器强制要求content-encoding、encryption、crypto-key三头部齐全且格式正确,否则推送失败。