-
最稳解法是::after伪元素+transform:scaleY(0.5),因CSS的1px在dpr=2设备上映射为2物理像素而显粗,缩放可精准落于1物理像素,但须配position:relative、transform-origin:0100%、pointer-events:none等防偏位。
-
使用CSS的:required伪类可为表单必填字段添加视觉提示。1.通过HTML的required属性标记必填项,CSS的:required伪类选中这些元素。2.用:required设置边框、背景色等样式提升可读性。3.结合::after与:has()在label旁添加红色星号标识,或直接在HTML中写入兼容性更好。4.利用:invalid和:valid区分未填与已正确填写的字段,分别显示红绿边框。通过简单CSS即可实现清晰的表单反馈,关键是保持样式一致,明确提示用户必填项及其状态。
-
能,但仅移除项目符号或编号,不消除li的默认外边距和缩进;需配合重置padding和margin才真正“去掉样式”,并注意list-style-position对布局的影响。
-
CredentialManagementAPI可实现原生异步自动填充:检测支持后,在DOM就绪且用户未输入前调用navigator.credentials.get(),通过mediation控制交互强度,安全注入凭证并更新UI,登出时需调用preventSilentAccess()保持状态一致。
-
playsinline在iOS上关键是因为仅iOSSafari和WebKitWebView强制要求该属性实现内联播放,Android等浏览器默认支持;必须同时设置playsinline和webkit-playsinline布尔属性,且需配合muted才能自动播放,否则强制全屏。
-
核心是将“今年生日”与“当前日期”转为Date对象计算毫秒差;若今年生日已过,则自动设为明年生日,再用Math.ceil(diffMs/86400000)得精确天数。
-
不能直接用展开运算符拷贝FormData,因其无自有可枚举属性且不可迭代;应使用newFormData(original.entries())实现轻量化浅拷贝,兼容现代浏览器,保留多值顺序与File/Blob引用。
-
内存碎片是标记-清除GC后存活对象分散导致的空闲空间不连续现象,引发分配失败、内存虚高和GC效率下降;V8通过空闲期压缩缓解,开发者应复用大对象、减少波动并及时解引用。
-
应使用transform替代display控制侧边栏显隐:初始设transform:translateX(-100%)实现默认隐藏,点击触发.open类改为translateX(0)实现滑入动画;同时需用stopPropagation()阻止事件冒泡,避免点击菜单自身导致关闭,并采用flex布局让主内容区自适应避让。
-
:not()伪类仅支持简单选择器,不可用于复合选择器;无法跨层级否定子元素,需用正向选择或分层类名;不改变优先级,多:not()链式使用表示“且”关系。
-
BackgroundSyncAPI不能在断网时自动重试,仅在网络恢复且ServiceWorker活跃时触发sync事件;需配合IndexedDB持久化请求数据,并在sync事件中重建并发送。
-
代码审查中,GitHooks结合自动化检查可提升效率。通过pre-commit、pre-push等钩子在提交或推送前自动执行ESLint、Prettier、flake8等静态检查工具,并利用lint-staged仅检测变更文件,既能保障代码质量又不影响速度。使用Husky统一管理钩子脚本,确保团队协作规范,强制执行提交格式、禁止调试语句、测试覆盖率等规则,减少重复评审意见。注意事项包括避免耗时脚本影响体验、提供清晰错误提示、将脚本纳入版本控制,并在CI/CD中重复关键检查,防止本地绕过。最终目标是将机械性
-
MutationObserver回调不触发最常见原因是配置漏项或目标节点失效:需显式调用observe()且target必须真实存在;监听class/style需用setAttribute而非property赋值;childList监听需注意subtree和removedNodes处理;attributeFilter与attributeOldValue须配合使用以避免性能问题。
-
本文介绍使用JavaScript的flatMap()方法,将满足条件(如flex数组中含'LB')的单个数据对象按比例拆分为两个新对象(分别对应'L'和'B'),并确保最终结果为扁平化数组。
-
focus/blur是监听元素获得/失去焦点最直接可靠的方式,仅在实际键盘/鼠标聚焦时触发,需元素可聚焦(如设tabindex);推荐addEventListener而非onfocus属性,focusin/focusout支持事件委托。