-
优先选用明确标注“CORSenabled”的天气API(如open-meteo.com),否则须通过后端代理中转,禁在前端硬编码Key;渲染时用textContent防XSS,IP定位需合规提示并提供手动修正入口。
-
路由守卫是前端权限控制第一道防线,仅做可见性过滤和轻量准入检查,核心权限必须由后端接口返回并校验;适合拦截未登录访问、角色无权路由及动态菜单过滤,不适用于接口权限、字段级控制或绕过地址栏的假安全。
-
应使用btnis-loading表达按钮加载状态,其中is-loading是语义清晰、块级归属的状态修饰符,需与块名组合使用、限定作用域、避免泛匹配,并遵循声明式设计原则。
-
事件监听器未清理是内存泄漏的直接原因,需用ChromeMemory面板检测detached节点及EventListeners数量增长,推荐AbortController配合signal自动解绑,尤其注意window/document监听器和React/Vue卸载时的清理时机。
-
Permissions-Policy是细粒度权限闸门,需明确“控谁、控什么、在哪控”;iframe的allow属性优先级高于响应头,须用分号分隔、括号指定来源;HTTP头需服务器配置,注意语法兼容与转义;navigator.permissions.query()返回prompt不代表可调用API,必须用户手势触发且iframe已获授权。
-
当子元素少于4个时强制单列显示,需用:has(>*:nth-child(4))判断存在性,配合not(:has())实现≤3个子项为1fr;阶梯式列数需按≥7、4–6、≤3顺序叠加:has()与:not(:has())规则,注意浏览器兼容性及display:contents兼容问题。
-
flex-basis设固定值会导致侧边栏不缩放,因强行固定空间而忽略弹性;应改用flex:01240px并确保子元素无min-width等限制,配合媒体查询实现小屏折叠与主内容区占满剩余空间。
-
Grid布局中侧边栏固定宽度+主内容自适应最稳方案是grid-template-columns:240px1fr;头部高度需显式声明grid-template-rows;gap不继承,子容器须单独设置;IE11禁用fr和subgrid。
-
微信网页分享必须通过JS-SDK签名调用,不可直接使用window.WeixinJSBridge;需后端用指定URL(不含hash)、nonceStr、timestamp、jsapi_ticket生成SHA1签名,前端config后在ready中调用updateAppMessageShareData等接口,且link须与签名URL同源同路径、图片需HTTPS及≥200×200px,本地localhost无效,仅限公众号后台配置的JS安全域名。
-
overflow与position结合使用时需注意裁剪和定位规则:1.overflow:hidden会裁剪absolute元素,影响下拉菜单显示;2.overflow:clip限制fixed元素范围,使其相对祖先而非视口定位;3.absolute容器可通过overflow-y:auto实现内部滚动;4.避免因层叠上下文错乱导致的渲染问题,合理调整DOM结构与样式优先级。
-
vertical-align用于控制inline或inline-block元素的垂直对齐,常见取值有baseline、top、middle等,适用于图片与文本对齐、表单布局等场景,需注意其仅对行内元素有效且受line-height影响。
-
accesskey属性不可靠,应禁用;其仅触发焦点切换且无反馈,存在跨浏览器差异、系统快捷键冲突、无障碍缺陷等问题;生产环境须用document级keyboard事件监听,配合e.ctrlKey/e.metaKey和e.code判断,并妥善管理生命周期与上下文。
-
具名捕获组(?P<name>...)比普通捕获组(...)更适合解析日志或API响应,因其通过名称取值提升可读性与维护性,避免因分组顺序变动导致的错误,且在Python、Node.js等现代环境中广泛支持。
-
浮动元素脱离文档流导致父容器背景色无法撑开,根本解决方法是触发BFC:现代推荐display:flow-root(Chrome64+/Firefox58+/Safari15.4+),旧项目兼容IE可用.clearfix伪元素清除浮动。
-
margin控制元素外间距,padding控制内边距;两者均可通过单、双、三、四值或单独方向设置,配合box-sizing:border-box可精准布局,避免默认间距影响,提升页面结构清晰度与可读性。