-
使用::placeholder伪元素可自定义输入框占位符样式,支持color、font-size、opacity等属性,需添加-webkit-、-moz-、-ms-前缀以兼容旧浏览器,可针对input、textarea等元素单独设置样式,提升界面美观与用户体验。
-
scroll-behavior:smooth不能直接实现全屏切屏,因为它仅平滑锚点跳转和scrollTo,不接管滚动事件、不强制对齐section边界、不阻止中间停顿;真正可行的是scroll-snap-type+smooth声明式方案,辅以JS处理兼容性与手动控制。
-
核心是通过抽象接口、运行时注入和工厂模式实现跨平台:定义Toast/Storage/Router等平台无关接口,各平台提供具体实现并由工厂注册,启动时注入全局上下文,组件无感调用,支持动态切换与灰度验证。
-
响应式卡片页应使用max-width+padding居中容器,grid布局配auto-fill与minmax实现自适应列数,卡片内用flex-column+flex-shrink/flex:1统一高度,hover需will-change和精准transition优化性能。
-
最直接方法是用addEventListener监听点击,通过classList.toggle切换类名,配合CSStransition实现平滑动效;transition必须写在默认类中,避免用all,注意移动端兼容与DOM存在性检查。
-
required、type、pattern需组合使用且依赖submit触发:required仅校验空值(非格式),必须置于form内并用type="submit"按钮或回车提交;type="email"校验宽松,精准格式须用pattern;pattern不作用于number类型,且需配合title和setCustomValidity("")清空错误状态。
-
路由守卫不直接检测版本更新,而是作为触发检查的时机入口,在路由跳转前发起版本比对并决定是否提示刷新;Vue用beforeRouteLeave,React用useLocation+useBlocker,逻辑统一抽离为hook或service,并优化提示体验。
-
every()对应“与”逻辑(全真才真,遇假即停),some()对应“或”逻辑(一真即真,遇真即停);二者均支持短路,空数组时every返回true、some返回false,且回调必须明确返回truthy/falsy值。
-
文字旋转模糊的根本原因是非90°整数倍旋转导致亚像素坐标,合成层强制对齐整数像素使子像素抗锯齿失效;filter:blur(0)仅偶发绕过渲染缓存,不稳定;真正解法是控制变换结果为整数像素,如calc()补偿、整数缩放比、避免奇数尺寸与百分比组合。
-
暗色模式应通过:root定义语义化CSS变量,同时用@media(prefers-color-scheme:dark)和html.dark类双路径覆盖,配合localStorage持久化与hsl()控制明暗,避免透明度叠加发灰及filter失真。
-
BEM更适用于强语义、高复用、样式深度耦合业务的场景,如多端复用的product-card;而Utility-First适合快速迭代、低抽象需求的营销页或A/B测试页,两者可混合但需严守边界:BEM管结构语义,Utility仅作临时修饰。
-
用唯一键(如临时URL或内容哈希)关联Blob和File元数据,Map中只存业务元数据,封装统一接口处理类型转换与键生成,前端Map仅限当前会话,需结合服务端ID做持久化对齐。
-
Vue自定义指令v-lazy基于IntersectionObserver实现图片懒加载,预加载进入视口前100px的图片,支持响应式、背景图、降级兼容及加载状态管理,有效减少首屏时间20%~40%。
-
优先用宽度而非高度做断点,因视口高度受浏览器地址栏动态遮挡影响易误触发,而宽度稳定且与设计稿切图逻辑一致;推荐3–4个max-width/min-width组合断点覆盖主流设备,配合rem布局时应在各断点内直接设置htmlfont-size以确保基准准确。
-
可以,box-shadow原生支持逗号分隔的多层阴影,需写在同一声明中,从左到右逐层绘制,近层清晰高透、远层模糊低透,偏移宜一致或缓增,模糊半径须阶梯式增大以模拟景深。