前端技术文章
-
绝对定位元素使父容器高度为0,因其彻底脱离文档流,父容器计算高度时完全“看不见”它们;这是CSS规范行为,非bug。常见现象包括offsetHeight为0、背景不显示、兄弟元素上移;clearfix等浮动清除方案无效。482 收藏 -
padding-top/bottom百分比按包含块宽度计算,而非高度,是为了避免layout循环依赖;CSS规范强制统一锚定宽度基准以确保布局可解。482 收藏 -
用grid-template-rows:0fr→1fr可实现平滑高度过渡,因fr是可插值弹性单位;需满足三前提:容器有确定高度上下文、显式声明grid-template-rows、内容区overflow:hidden。482 收藏 -
eval在JavaScript中于当前作用域执行字符串代码,导致作用域污染、变量覆盖或泄露,且无法隔离;应优先使用JSON.parse、Function构造器或白名单映射等安全替代方案。482 收藏 -
骨架屏是页面数据加载前的灰色轮廓占位,微信开发者工具可自动生成skeleton.wxml与wxss文件,通过wx:if控制显隐,需随页面布局更新而同步调整。482 收藏 -
flex-basis是分配空间前的初始基准,非固定值;优先用0px而非0%,因0%在旧版Safari中可能回退为auto导致布局错乱,且需配合min-width:0解除隐式最小尺寸限制。482 收藏 -
WebWorker适合处理大体积JSON解析、结构化缓存反序列化、缓存数据聚合/过滤三类CPU密集型操作;需通过postMessage通信,主线程中转更新响应式状态,并注意消息体限制、Worker复用及组件卸载清理。482 收藏 -
JavaScript没有真正的反射机制,其所谓“反射”实为Object方法、Reflect对象和Proxy共同提供的对象结构探测与行为拦截能力,核心在于控制访问方式而非语言级元数据操作。482 收藏 -
Less编译后CSS不热更新,需检查构建工具是否监听.less文件:Webpack需配置style-loader(hmr:true)、css-loader、less-loader链路完整;Vite需启用vite-plugin-less;Parcel需确认未禁用transformer-less。482 收藏 -
~选择器用于选中某元素后所有同级兄弟元素,如.container>div~div{margin-top:16px;}可为非首个div添加上边距,实现均匀间距且避免首尾冗余空白。482 收藏 -
本文详解为何无法真正“清除”fetch触发的404控制台错误日志,并提供专业级替代方案:通过配置请求、捕获网络异常、禁用预检失败提示及合理使用try/catch,从根源上避免冗余错误输出。481 收藏 -
Vue.js的props更新由父组件重渲染驱动,触发子组件重新执行render生成新VNode,再经patch算法比对更新DOM;props本身不被直接diff,仅作为渲染输入,且为只读响应式代理。481 收藏 -
Less无if语句,用守卫混合模拟编译期条件匹配;无for循环,靠递归混合实现;不支持JS函数,内置函数有限且行为与JS不同;所有逻辑均在编译期展开为静态CSS。481 收藏 -
contextmenu事件中必须在回调第一行同步调用e.preventDefault(),否则原生菜单会闪现;自定义菜单应挂载到document.body,用clientX/Y定位并设position:fixed;iframe和ShadowDOM需分别在其contentDocument或shadowRoot上监听;菜单关闭后须remove()并恢复焦点。481 收藏 -
additionalData配置可使SCSS变量全局可用,但路径错误、分号遗漏、@use与@import混用是90%失效主因;必须用@use"@/styles/variables.scss"as*;并确保别名已配置、文件无CSS规则、末尾带分号。481 收藏