-
font-smoothing无法解决跨浏览器字体渲染问题,因其仅为WebKit/Blink私有属性,Firefox/IE不支持,且macOS与Windows行为不一致,实际渲染由系统API决定,CSS仅能微调。
-
原生<inputtype="time">可直接唤起系统级时间选择器,轻量且语义化,但不支持自定义格式、步进限制,且不兼容IE和部分老版Safari;value必须为"HH:MM"格式,需注意时区与iOS兼容性问题。
-
TypeScript装饰器通过类型安全的元编程增强代码可读性与维护性,支持在类、方法、属性上添加元数据或修改行为。结合泛型与接口,编译时即可检查类型错误,避免误用。框架如Angular、NestJS利用装饰器声明组件、服务和路由,结合reflect-metadata实现依赖注入与自动实例化,减少样板代码。属性、方法、参数装饰器分别用于响应式追踪、逻辑拦截和请求参数标注,实现关注点分离。尽管装饰器尚处Stage3,但在TypeScript中已广泛用于构建高可靠、易维护的大型应用,提升架构清晰度与开发效率。
-
NotificationAPI不能实现推送,仅负责在页面运行时显示通知;真正推送需配合WebSocket、SSE或WebPush(ServiceWorker+PushAPI)等机制实现消息抵达。
-
本文详解如何通过静态访问器(staticget)、接口约束与泛型工厂模式,使父类无需硬编码即可动态获取子类定义的静态配置(如singularName/pluralName),消除重复方法声明,兼顾运行时健壮性与编译时类型检查。
-
外边距合并是相邻块级元素垂直margin取较大值而非相加的规范行为;常见于div堆叠、h1后p、父子间;可用BFC阻断,推荐display:flow-root。
-
localStorage需手动序列化/反序列化对象,用JSON.stringify()存、JSON.parse()取并捕获SyntaxError;sessionStorage仅当前标签页有效,关闭即销毁;二者均不参与HTTP请求,localStorage同源共享且持久,sessionStorage隔离且临时。
-
动态导入与预加载可提升前端性能。通过import()按需加载模块,减少首屏体积;结合webpackChunkName、webpackPrefetch等魔法注释命名并预取chunk;路由级组件和非关键功能(如图表)采用动态加载,辅以空闲时预加载高概率模块,优化资源加载时机,加快响应速度。
-
background-image是最常用且可控的背景图设置方式,需配合background-size、background-position使用,确保元素有宽高、路径正确,并优先用相对路径;禁用background-repeat,推荐cover模式;不可用img替代,因语义与行为冲突;注意跨域、本地协议限制及响应式适配。
-
Safari对calc()结果执行向下取整(floor),导致宽度/高度差1px;Chrome、Firefox则四舍五入或保留小数,这是WebKit布局阶段的数值处理策略,并非bug。
-
Proxy本身不记录历史或保存状态快照,仅拦截操作,因此无法直接支持撤销;必须额外维护操作历史栈并配合路径追踪、深度比较与安全还原逻辑。
-
align-items:stretch没起作用是因为父容器缺少明确的交叉轴尺寸(如height/min-height),或子元素设置了height、min-height、align-self等限制;flex-direction:column时它控制宽度而非高度。
-
用<img>的width/height属性仅缩放不裁剪;真正裁剪需容器设宽高+overflow:hidden+object-fit:cover或绝对定位;精确控制用clip-path或Canvas;服务端裁剪更优但需校正EXIF方向。
-
sticky定位失效主因是父容器overflow非visible或未设top值,需确保最近可滚动祖先无overflow:hidden/auto/scroll且显式声明top,同时避免transform等创建新层叠上下文的属性。
-
$subscribe是Pinia监听状态变更最轻量推荐方式,监听mutation提交而非响应式赋值,接收mutation和state参数,支持埋点、过滤、聚合、防抖及插件化全局注册。