前端技术文章
-
外边距合并不是bug而是CSS规范行为:垂直相邻块级元素的margin-top/margin-bottom会取较大值合并。典型场景有相邻兄弟元素、父子塌陷、空元素自合并;推荐用BFC(如display:flow-root)、统一设margin-bottom、gap或微调padding/border来隔离。427 收藏 -
最稳妥做法是使用<asidearia-label="该话题已于2024年6月15日关闭讨论"><p>已关闭讨论<timedatetime="2024-06-15">2024年6月15日</time></p></aside>,语义清晰、屏幕阅读器友好且利于SEO。427 收藏 -
viewport是移动端页面正常显示的底线,必须写在<head>最前面且内容为width=device-width,initial-scale=1,缺一不可;否则iOSSafari默认按980px渲染,文字过小、布局错乱。427 收藏 -
行为验证码需先调用SDK的verify()获取有效ticket再提交表单,后端必须调用厂商验证接口校验三元组参数,且注意字段名、时间同步和Referer/IP白名单配置。427 收藏 -
展开运算符(...)是JavaScript中将可迭代对象解包为独立值的底层能力,用于数组合并、函数传参、浅拷贝、类数组转换等,但不支持深拷贝、null/undefined展开及原型属性继承。427 收藏 -
正则表达式是JavaScript字符串处理的基础设施,必须掌握RegExp对象及match()、test()、replace()等方法;字面量简洁但不可拼接变量,构造函数支持变量但需双写反斜杠;不同场景应选用match、test、exec或replace。427 收藏 -
纯HTML无法实现真正可用的旅游攻略页,因其缺乏交互、动态数据加载和响应式适配能力,仅能生成静态、低效、不可维护的页面。427 收藏 -
Python用os.path.getsize()获取文件字节数最直接,但对符号链接默认返回链接自身大小;需用os.path.realpath()解析真实路径,路径不存在或无权限时抛OSError。427 收藏 -
JavaScript循环选择取决于数据结构和控制逻辑:次数确定或需索引用for;条件驱动且次数不定用while;需至少执行一次用do...while;遍历值优先for...of,避免for...in用于数组。426 收藏 -
路由跳转内存泄漏核心在于组件未真实卸载或资源未释放:一是框架复用组件导致生命周期钩子未触发,二是全局监听、定时器、订阅等外部引用未清理,需通过钩子打点和浏览器工具双重验证。426 收藏 -
现代三栏布局应弃用浮动圣杯布局,改用Flexbox或Grid:前者适合主内容高度多变、需DOM与视觉顺序分离的场景,后者适用于等高、统一间隙及语义优先的需求,二者均具备良好响应式支持与可维护性。426 收藏 -
configurable是属性最底层的开关,设为false后无法删除属性、不可修改enumerable和configurable本身,仅允许将writable从true改为false;writable可逆需configurable为true,否则固化。426 收藏 -
Vue通过异步队列批量更新Watcher,利用microtask(如Promise)在当前JS执行结束、渲染前统一刷新,避免冗余DOM操作;推荐用Object.freeze、分片更新、虚拟滚动等优化大批量响应式数据处理。426 收藏 -
fixed定位缩放偏移的根源是视口坐标系漂移,须用vh/vw替代px实现同比例缩放,禁用混用单位、transform父级及错误viewport配置,并辅以visualViewportAPI微调。426 收藏 -
align-items:stretch能让子元素垂直拉伸,但需父容器有明确高度且子元素未设置height、align-self等覆盖属性;否则因交叉轴无可用空间或样式冲突导致失效。426 收藏